一馋记、微信支付開發(fā)
1.【基本信息設(shè)置】
商戶向微信提交企業(yè)以及銀行賬戶資料掸绞,商戶功能審核通過后,可以獲得帳戶基本信息喘帚,找到本例程的配置文件「WxPay.pub.config.php」贪婉,配置好如下信息:
- appId:微信公眾號身份的唯一標(biāo)識反粥。審核通過后,在微信發(fā)送的郵件中查看
- Mchid:受理商ID疲迂,身份標(biāo)識
- Key:商戶支付密鑰Key才顿。審核通過后,在微信發(fā)送的郵件中查看鬼譬。 -
- Appsecret:JSAPI接口中獲取openid娜膘,審核后在公眾平臺開啟開發(fā)模式后可查看。
2.【native支付鏈接設(shè)置】
native支付中优质,用戶掃碼后調(diào)微信會將productid和用戶openid發(fā)送到商戶設(shè)置的鏈接上竣贪,確保該鏈接與實(shí)際服務(wù)路徑一致。本例程的響應(yīng)服務(wù)為「./demo/native_call.php」
3.【JSAPI路徑設(shè)置】
通過JSAPI發(fā)起支付的代碼應(yīng)該放置在商戶設(shè)置的「支付授權(quán)目錄」中巩螃。
并找到本例程的配置文件「WxPay.pub.config.php」演怎,配置正確的路徑。
4.【證書路徑設(shè)置】
找到本例程的配置文件「WxPay.pub.config.php」避乏,配置證書路徑(主要在退款及查詢退款信息時候用到證書)
5.【異步通知url設(shè)置】
找到本例程的配置文件「WxPay.pub.config.php」爷耀,配置異步通知url(用戶支付完成后,將調(diào)啟該URL對應(yīng)的PHP給商家拍皮,更新支付信息到后臺)歹叮。
6.【必須開啟curl服務(wù)】
使用Crul需要修改服務(wù)器中php.ini文件的設(shè)置,找到php_curl.dll去掉前面的";"即可铆帽。
7.【設(shè)置curl超時時間】
本例程通過curl使用HTTP POST方法咆耿,此處可修改其超時時間,默認(rèn)為30秒爹橱。找到本例程的配置文件「WxPay.pub.config.php」萨螺,配置curl超時時間。代碼文件結(jié)構(gòu)
wxpay_php
|-- README.txt---------------------使用說明文本
|-- WxPayHelper--------------------微信支付類庫及常用文件
| |-- SDKRuntimeException.php----異常處理類
| |-- WxPay.pub.config.php-----------商戶配置文件
| |-- WxPayPubHelper.php------------微信支付類庫
|-- demo---------------------------例程
| |-- js_api_call.php------------JSAPI支付例程
| |-- native_call_qrcode.php-----native支付靜態(tài)鏈接二維碼例程
| |-- native_call.php------------native支付后臺響應(yīng)例程
| |-- native_call.log------------native支付后臺響應(yīng)日志
| |-- native_dynamic_qrcode.php--native支付動態(tài)鏈接二維碼例程
| |-- notify_url.php-------------支付結(jié)果異步通知例程
| |-- notify_url.log-------------支付結(jié)果異步通知日志
| |-- order_query.php------------訂單查詢例程
| |-- refund.php-----------------退款例程
| |-- download_bill.php----------對賬單例程
| |-- refund_query.php-----------退款查詢例程
| |-- log_.php-------------------日志類
| |-- qrcode.js------------------二維碼生成工具
-- index.php
二愧驱、附錄
1慰技、html中根據(jù)前臺支付后反饋信息成功與否跳轉(zhuǎn)到相關(guān)頁面
if (res.err_msg == "get_brand_wcpay_request:ok") { // message: "微信支付成功!", window.location.replace("@Url.Content("~/WxPay/Success?ordercode=@(Model.order_no)")); }else if (res.err_msg == "get_brand_wcpay_request:cancel") { // message: "已取消微信支付!" }