【微信支付】調起微信支付,總是顯示-1的解決辦法
阿新 • • 發佈:2019-01-10
如果你檢查過 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 獲取統一下單