tp5.0 微信jsapi支付
生活随笔
收集整理的這篇文章主要介紹了
tp5.0 微信jsapi支付
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
tp5.0 微信jsapi支付流程
1、下載官方sdk包放在extend目錄下
2、在公眾號里面關(guān)聯(lián)商戶號,在商戶號里面配置域名
3、在Wxpay.Config.php這個文件里面把你的公眾號APPID、APPSECRET,商戶號MCHID,自己設(shè)置的商戶秘鑰KEY全部設(shè)置好;
例:public function GetAppId(){return 'wx12345678912';//這里填公眾號APPID(還有幾個地方大家依次填入,我就不示范了)}4、創(chuàng)建paywx控制器
引入文件:require_once APP_PATH . '/../extend/WxPay/lib/WxPay.Api.php';require_once APP_PATH . '/../extend/WxPay/example/WxPay.JsApiPay.php';require_once APP_PATH . '/../extend/WxPay/example/WxPay.Config.php';require_once APP_PATH . '/../extend/WxPay/lib/WxPay.Data.php';require_once APP_PATH . '/../extend/WxPay/example/log.php';(注意:這里引入路徑大小寫要和你文件名大小寫一致,不然會報錯WxPay.JsApiPay.php、WxPay.Config.php里面的文件路徑也要修改一下例:require_once APP_PATH . '/../extend/WxPay/lib/WxPay.Api.php';)(路徑自己拼,../上一級,根據(jù)自己sdk存放目錄自己拼,上面是我的路徑)創(chuàng)建方法:直接把微信jsapi里面的方法搬過來修改一下public function index(){$tools = new \JsApiPay();$openId = $tools->GetOpenid();(這里的openid和你網(wǎng)頁授權(quán)的openid一樣,如果你以前寫過獲取openid的方法這里就不用寫了,直接引入就好,如果沒有寫也不要用sdk包里面的方法,直接去對接網(wǎng)頁授權(quán)的接口就好,返回一個openid,我感覺比sdk里面的方法簡單)//②、統(tǒng)一下單$input = new \WxPayUnifiedOrder();$input->SetBody("test");$input->SetAttach("test");$input->SetOut_trade_no("sdkphp".date("YmdHis"));$input->SetTotal_fee("1");$input->SetTime_start(date("YmdHis"));$input->SetTime_expire(date("YmdHis", time() + 600));$input->SetGoods_tag("test");$input->SetNotify_url("http://paysdk.weixin.qq.com/notify.php");$input->SetTrade_type("JSAPI");$input->SetOpenid($openId);$config = new \WxPayConfig();$order = \WxPayApi::unifiedOrder($config, $input);$jsApiParameters = $tools->GetJsApiParameters($order);$this->assign('jsApiParameters',$jsApiParameters);$this->display();return view();}(注意:我這里文件引入正確之后但是調(diào)用時前面要加\,我也不知道為啥例$tools = new JsApiPay()這是官方的,$tools = new \JsApiPay()這是我的)5、創(chuàng)建視圖
<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/> <title>微信支付樣例-支付</title> <script type="text/javascript">//調(diào)用微信JS api 支付function jsApiCall(){WeixinJSBridge.invoke('getBrandWCPayRequest',{$jsApiParameters},function(res){WeixinJSBridge.log(res.err_msg);alert(res.err_code+res.err_desc+res.err_msg);});}function callpay(){if (typeof WeixinJSBridge == "undefined"){if( document.addEventListener ){document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);}else if (document.attachEvent){document.attachEvent('WeixinJSBridgeReady', jsApiCall);document.attachEvent('onWeixinJSBridgeReady', jsApiCall);}}else{jsApiCall();}} </script> <script type="text/javascript">//獲取共享地址function editAddress(){WeixinJSBridge.invoke('editAddress',{$editAddress},function(res){var value1 = res.proviceFirstStageName;var value2 = res.addressCitySecondStageName;var value3 = res.addressCountiesThirdStageName;var value4 = res.addressDetailInfo;var tel = res.telNumber;alert(value1 + value2 + value3 + value4 + ":" + tel);});}window.onload = function(){if (typeof WeixinJSBridge == "undefined"){if( document.addEventListener ){document.addEventListener('WeixinJSBridgeReady', editAddress, false);}else if (document.attachEvent){document.attachEvent('WeixinJSBridgeReady', editAddress);document.attachEvent('onWeixinJSBridgeReady', editAddress);}}else{editAddress();}};</script>該筆訂單支付金額為1分錢
立即支付
6、看到立即支付就基本成功了,記得在手機上面調(diào)試哦
總結(jié)
以上是生活随笔為你收集整理的tp5.0 微信jsapi支付的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SOLO模型环境搭建训练流程及问题
- 下一篇: 小米开机 android,【教程】安卓1