由於使用了別人封裝的微信公眾平台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>