一、有言在先
1、俺家公眾號開通微信支付時間是9月22號,所以適用文檔版本號是v3.3.6,當時一不小心從微信客服那里拿到一個v2.7的文檔,撲騰了1天時間,從一個個水坑里爬出來又跌入尿坑,把人坑慘了,后面找到相關人士才拿到真相,不過現在公眾平臺也可以下載到了~希望大家伙繞開這個坑!
2、最重要一點:此文有軟廣告嫌疑,慎入!先幫朋友們把評論寫在這里~~~
二、需要到這些地方去扒參數
1、登錄微信公眾號管理后臺mp.weixin.QQ.com,在左側菜單欄找到開發者中心,點開如下圖就能看到AppID和AppSecret:

2、在微信支付通過之后,財付通會發3封郵件到申請人郵箱中,俺家之前開通過財付通的賬戶用于主站支付接口,不過這次又新發了一個財付通賬號,不過讓人驚喜的是這次微信支付免了保證金,不知為啥?

點開weixinpay那封郵件就可以看到這些賬號信息,把附件中pem格式的文件下載保存到web服務器上,請記下文件絕對路徑,在下面代碼中需要用到:

3、登錄微信商戶平臺(mch.weixin.qq.com),去設置商戶支付密鑰Key:

4、登錄微信公眾號管理后臺mp.weixin.qq.com,設置支付配置,支付測試,支付白名單

三、找到參數來配置該個類classWxPayConf
classWxPayConf
{
//=======【基本信息設置】=====================================
//微信公眾號身份的唯一標識。審核通過后,在微信發送的郵件中查看
constAPPID="填上二、1中看到的AppID";
//受理商ID,身份標識
constMCHID="填上二、2中看到的MCHID";
//商戶支付密鑰Key。審核通過后,在微信發送的郵件中查看(如果沒有,可以登錄微信商戶平臺去設置)
constKEY="填上二、3中設置的密鑰";
//JSAPI接口中獲取openid,審核后在公眾平臺開啟開發模式后可查看
constAPPSECRET="填上二、1中看到的AppSecret";
//=======【JSAPI路徑設置】===================================
//獲取access_token過程中的跳轉uri,通過跳轉將code傳入jsapi支付頁面
constJS_API_CALL_URL="http://www.xxx.com/wxpay/js_api_call.php";
//=======【證書路徑設置】=====================================
//證書路徑,注意應該填寫絕對路徑
constSSLCERT_PATH="填上二、2中下載的pem文件放在服務器上的路徑";
constSSLKEY_PATH="填上二、2中下載的pem文件放在服務器上的路徑";
//=======【異步通知url設置】===================================
//異步通知url,商戶根據實際開發過程設定
constNOTIFY_URL=http://www.xxxx.com/wxpay/notify_url.php;
}
四、JSAPI支付
微信JSAPI只能在微信內置瀏覽器中使用,其他瀏覽器調用無效。
下面代碼是微信官方提供的JSAPI支付demo
include_once("WxPayHelper/WxPayHelper.php");
//使用jsapi接口$jsApi = new JsApi();//=========步驟1:網頁授權獲取用戶openid============//通過code獲得openidif(!isWeixin()){echo "請在微信內掃描二維碼";exit;}if (!isset($_GET['code'])){//觸發微信返回code碼$url = $jsApi->createOauthUrlForCode(WxPayConf::JS_API_CALL_URL.");Header("Location: $url");}else{//獲取code碼,以獲取openid$code = $_GET['code'];$jsApi->setCode($code);$openid = $jsApi->getOpenId();}if(empty($order)){echo "數據錯誤!";exit;}}//=========步驟2:使用統一支付接口,獲取PRepay_id============//使用統一支付接口$unifiedOrder = new UnifiedOrder();//設置統一支付接口參數//設置必填參數//appid已填,商戶無需重復填寫//mch_id已填,商戶無需重復填寫//noncestr已填,商戶無需重復填寫//spbill_create_javascript">//調用微信JS api 支付function jsApiCall(){WeixinJSBridge.invoke('getBrandWCPayRequest',<?php echo $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></head><body onload=""></br></br></br></br><div align="center"><buttonstyle="width: 210px; height: 30px; background-color: #FE6714; border: 0px #FE6714 solid; cursor: pointer; color: white; font-size: 16px;"type="button" onclick="callpay()">貢獻一下</button></div></body></html> 

將其中的微信支付參數修改成自己申請得到的,然后將網頁上傳到微信支付目錄下,使用公眾號給測試賬號回復該網頁地址。用戶就可以實現一次JSAPI支付。
五、NATIVE支付
采用了官方提供的demo,native支付模式2完成
下面代碼是微信官方提供的natice支付demo
include_once("WxPayHelper/WxPayHelper.php");
//使用統一支付接口$unifiedOrder = new UnifiedOrder();//設置統一支付接口
新聞熱點
疑難解答