天天看點

PHP處理-微信支付

需要到這些地方去扒參數

       1、登入微信公衆号管理背景mp.weixin.qq.com,在左側菜單欄找到開發者中心,點開如下圖就能看到AppID和AppSecret:

PHP處理-微信支付
PHP處理-微信支付

   點開weixinpay那封郵件就可以看到這些賬号資訊,把附件中pem格式的檔案下載下傳儲存到web伺服器上,請記下檔案絕對路徑,在下面代碼中需要用到:

PHP處理-微信支付

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

PHP處理-微信支付

        4、登入微信公衆号管理背景mp.weixin.qq.com,設定支付配置,支付測試,支付白名單

PHP處理-微信支付

三、找到參數來配置該個類class WxPayConf

<code>class</code> <code>WxPayConf</code>

<code>{</code>

<code>//=======【基本資訊設定】=====================================</code>

<code>//微信公衆号身份的唯一辨別。稽核通過後,在微信發送的郵件中檢視</code>

<code>const</code> <code>APPID = </code><code>"填上二、1中看到的AppID"</code><code>;</code>

<code>//受理商ID,身份辨別</code>

<code>const</code> <code>MCHID = </code><code>"填上二、2中看到的MCHID"</code><code>;</code>

<code>//商戶支付密鑰Key。稽核通過後,在微信發送的郵件中檢視(如果沒有,可以登入微信商戶平台去設定)</code>

<code>const</code> <code>KEY = </code><code>"填上二、3中設定的密鑰"</code><code>;</code>

<code>//JSAPI接口中擷取openid,稽核後在公衆平台開啟開發模式後可檢視</code>

<code>const</code> <code>APPSECRET = </code><code>"填上二、1中看到的AppSecret"</code><code>;</code>

<code> </code> 

<code>//=======【JSAPI路徑設定】===================================</code>

<code>//擷取access_token過程中的跳轉uri,通過跳轉将code傳入jsapi支付頁面</code>

<code>const</code> <code>JS_API_CALL_URL = </code><code>"http://www.xxx.com/wxpay/js_api_call.php"</code><code>;</code>

<code>//=======【證書路徑設定】=====================================</code>

<code>//證書路徑,注意應該填寫絕對路徑</code>

<code>const</code> <code>SSLCERT_PATH = </code><code>"填上二、2中下載下傳的pem檔案放在伺服器上的路徑"</code><code>;</code>

<code>const</code> <code>SSLKEY_PATH = </code><code>"填上二、2中下載下傳的pem檔案放在伺服器上的路徑"</code><code>;</code>

<code>//=======【異步通知url設定】===================================</code>

<code>//異步通知url,商戶根據實際開發過程設定</code>

<code>const</code> <code>NOTIFY_URL = http:</code><code>//www.xxxx.com/wxpay/notify_url.php;</code>

<code>}</code>

四、JSAPI支付

  微信JS API隻能在微信内置浏覽器中使用,其他浏覽器調用無效。 

   include_once("WxPayHelper/WxPayHelper.php");

<a href="http://blog.51cto.com/xuqin/1588646#">expand source</a>

PHP處理-微信支付
PHP處理-微信支付

五、NATIVE支付

   采用了官方提供的demo,native支付模式2完成

    include_once("WxPayHelper/WxPayHelper.php");

PHP處理-微信支付
PHP處理-微信支付
PHP處理-微信支付
PHP處理-微信支付
PHP處理-微信支付
PHP處理-微信支付

本文介紹微信支付下的jsapi實作流程

微信支付現在分為v2版和v3版,2014年9月10号之前申請的為v2版,之後申請的為v3版。V3版的微信支付沒有paySignKey參數。v2的相關介紹請參考方倍工作室的其他文章。本文介紹的微信支付v3。

JSAPI 支付前需要調用 登入授權接口擷取到使用者的 Openid 。是以需要做一次授權,這次授權是不彈出确認框的。

其實質就是在使用者通路

時跳轉到

以此來獲得code參數,并根據code來獲得授權access_token及openid

在微信支付的Demo中,其代碼為

這一步的最終結果就是獲得了目前使用者的openid

統一支付是JSAPI/NATIVE/APP各種支付場景下生成支付訂單,傳回預支付訂單号的接口,目前微信支付所有場景均使用這一接口

統一支付中以下參數從配置中擷取,或由類自動生成,不需要使用者填寫

在JSAPI支付中,另外填寫以下參數

其他為選填參數

這些參數最終組成了這樣的xml資料,

将這些資料送出給統一支付接口

将獲得傳回 如下資料

其中包含了最重要的預支付ID參數,prepay_id,值為 

前面的準備工作做好了以後,JS API根據prepay_id生成jsapi支付參數

生成代碼如下

生成的json資料如下

在微信浏覽器中調試起js接口,代碼如下

當使用者點選“貢獻一下”按鈕時,将彈出微信支付插件,使用者可以開始支付。

支付成功後,通知接口中也将收到支付成功的xml通知

參考位址:

<a href="http://www.cnblogs.com/txw1958/p/wxpayv3-jsapi.html" target="_blank">http://www.cnblogs.com/txw1958/p/wxpayv3-jsapi.html</a>

<a href="http://www.111cn.net/phper/php-cy/71237.htm" target="_blank">http://www.th7.cn/Program/php/201410/296997.shtml</a>

   本文轉自許琴 51CTO部落格,原文連結:http://blog.51cto.com/xuqin/1588646,如需轉載請自行聯系原作者