開發微信支付的一點心得

x3d發表於2014-05-23

由於使用了別人封裝的微信公眾平臺SDK http://www.cnblogs.com/x3d/p/3740454.html  ,所以省去了完整理解開發手冊的時間。

微信支付,即便交了保證金,你還是處理測試階段,不能正式釋出。必須到你通過程式測試提交訂單、發貨通知等資料到微信的系統中,才能申請釋出。

然後,因為在微信中是通過JS方式呼叫API,必須在微信後臺設定支付授權目錄,而且要到二級三級目錄下去,這對於使用MVC框架來說,是個小問題。

使用MVC,在開發環境,url往往是native url格式,不能保證一定是帶有路徑/的形式

 

所以,比較可靠的方式,是建立實體的子資料夾,這樣的化,在系統整體url方面,需要進行一些改造。

 

另外,最後一步,js呼叫時,對於 https://github.com/dodgepudding/wechat-php-sdk  這裡提供的js庫,在呼叫時,必須確保在頁面載入完後觸發,即WeixinJSBridgeReady的狀態,因為這時才能與微信瀏覽器提供jsbridge進行通訊。

5.24修復

具體可看微擎中的相關程式碼。

<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>

 


相關文章