關鍵前置條件
- 商戶號已繳納保證金,但仍處於測試階段,需通過程式提交訂單、發貨數據至微信後台審核才能正式發布。
- 微信後台必須設定支付授權目錄,且需為二/三級實體路徑(如
/pay/wx/),MVC 框架需建立實體子目錄配合。
- JS 唤醒支付需在
WeixinJSBridgeReady 事件後觸發,確保微信瀏覽器 JSBridge 就緒。
前端喚醒支付標準代碼
<script type="text/javascript">
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
WeixinJSBridge.invoke('getBrandWCPayRequest', {
'appId' : '<?php echo $wOpt['appId'];?>',
'timeStamp' : '<?php echo $wOpt['timeStamp'];?>',
'nonceStr' : '<?php echo $wOpt['nonceStr'];?>',
'package' : '<?php echo $wOpt['package'];?>',
'signType' : '<?php echo $wOpt['signType'];?>',
'paySign' : '<?php echo $wOpt['paySign'];?>'
}, function(res) {
if (res.err_msg == 'get_brand_wcpay_request:ok') {
// 支付成功,可跳轉訂單頁
} else {
alert('啟動微信支付失敗: ' + res.err_msg);
}
history.go(-1);
});
}, false);
</script>
後端準備參數要點
- 統一下單 API 獲取
prepay_id。
- 組裝
package=prepay_id=xxx。
- 按微信規範計算
paySign(SHA256 with RSA 或 MD5 視版本)。
- 將所有參數陣列
$wOpt 傳給視圖。
參考資源