1. 程式人生 > >【微信支付】調起微信支付,總是顯示-1的解決辦法

【微信支付】調起微信支付,總是顯示-1的解決辦法

如果你檢查過 APPID,檢查過商戶號,檢查過包名,檢查過應用簽名,依然顯示 -1

那麼你可以嘗試我這種方式

記住下面這句話

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5

商戶伺服器生成支付訂單,先呼叫【統一下單API】生成預付單,獲取到prepay_id後將引數 再次簽名 傳輸給APP發起支付。

參與簽名的欄位名為appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式為Sign=WXPay

通俗來講:伺服器要做兩次簽名

流程:

1、伺服器請求“統一下單介面”,得到微信返回的如下資料

 

2、伺服器使用 得到的資料進行再次簽名

伺服器這時候能拿到的有用的資料有

appid,mch_id,nonce_str,prepay_id

而我們需要

appid,partnerid,prepayid,noncestr,timestamp,package。

其中  partnerid 就是 mch_id

其中 timestamp,是時間戳,單位為秒,記住這一點,獲取系統時間後,看情況是不是要 除以 1000,這個是伺服器自己獲取一下系統時間就行,沒有什麼刻意的要求。

其中 package = Sign=WXPay,這個是寫死的

 

3、伺服器把再次簽名後得到的資料傳給我們

使用就可以了

 

重點:

不用後臺人員我們也可以呼叫微信支付。

只要我們知道 後臺人員設定的 key就行。

然後使用

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=20_1

自己生成sign

postMan  獲取統一下單