微信JSAPI支付提示支付簽名驗證失敗、jsapi缺少參數 total_fee、當前url未注冊問題的解決方法


 

一、支付簽名驗證失敗問題

 

微信官方提供的JSAPI發起支付中對簽名的描述並不是很清楚,詳見:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6

找了很多資料才找到具體的簽名方法,希望對大家有用。

$data2['timeStamp']=time();
$data2['appId']=$config['app_id'];
$data2['nonceStr']=$nonce_str;
$data2['package']="prepay_id=".$result['prepay_id'];
$data2['signType']="MD5";
$data2['paySign']= $wxpay->createMd5Sign($data2);

 

要注意的是 參與簽名的prepay_id,必須是 prepay_id=****  的格式。

 

 二、jsapi缺少參數 total_fee

 

wx.chooseWXPay({
  timestamp: 0, // 支付簽名時間戳,注意微信jssdk中的所有使用timestamp字段均為小寫。但最新版的支付后台生成簽名使用的timeStamp字段名需大寫其中的S字符
  nonceStr: '', // 支付簽名隨機串,不長於 32 位
  package: '', // 統一支付接口返回的prepay_id參數值,提交格式如:prepay_id=\*\*\*)
  signType: '', // 微信支付V3的傳入RSA,微信支付V2的傳入格式與V2統一下單的簽名格式保持一致
  paySign: '', // 支付簽名
  success: function (res) {
    // 支付成功后的回調函數
  }
});

另外在微信瀏覽器發起微信支付時,package的格式要求也為 prepay_id=****  ,如果不是,則會出現 JSAPI缺少參數 total_fee 的問題

 

三、當前url未注冊

 

當前url未注冊 的問題需要登陸微信支付商戶中,產品》JSAPI中設置支付授權目錄 即可。設置要求為 https://www.alipay.com/pay/  到你支付的上級目錄就行

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM