1. 程式人生 > >微信支付-掃碼支付方式在ThinkPHP商城中的使用(第二部分)

微信支付-掃碼支付方式在ThinkPHP商城中的使用(第二部分)

本部分內容的視訊內容在:http://edu.csdn.net/course/detail/5381

四、利用SDK按照微信規則生成二維碼

  1. 生成支付的資料

    需要呼叫WxPayApi.php中的bizpayurl來生成二維碼規則

    Bizpayurl()中需要傳入引數,這兒只傳入了product_id,因為其他引數是SDK自動在我們的配置檔案中讀取的。

    \WxpayApi::bizpayurl($biz)返回的是一個物件,怎麼樣將物件拼接到url後邊成為引數呢?當然是這樣形式aaa=dddddd&ccc=fffff

    這樣Url就完成了,那怎麼樣將url轉換為二維碼的圖形呈獻給使用者呢?已經有人寫好了PHP生成二維碼的類庫,要用就拿過來用就行。

五、使用Phpqrcode類庫生成二維碼

  1. 怎麼樣獲取phpqrcode

    直接將phpqrcode拷貝到thinkphp的Vendor目錄下,是這個樣子的

  2. 在控制器中使用phpqrcode

    先引入phpqrcode

    注意這個是將二維碼生成後儲存在伺服器中哦,已經說過這個不是最好的解決方案的。

    關於phpqrcode的更多使用請檢視phpqrcode手冊

六、掃碼介面的呈現

七、掃碼之後發生了什麼

支付系統就會訪問你在配置回撥地址時填寫的地址。而且會帶著一些資料來訪問,而且資料的格式是xml格式(微信很多回調資料都這樣)。作為開發人員我們肯定需要這些資料做進一步處理。
  1. 接收微信系統傳回的資料

    一起來看看帶回的xml資料長什麼樣

    <xml><appid><![CDATA[wx005ba882c8519d98]]></appid><openid><![CDATA[oaQH1wCQBzsDfZT0xE8C6pL73vp0]]></openid><mch_id><![CDATA[1345487901]]></mch_id><is_subscribe><![CDATA[Y]]></is_subscribe><nonce_str><![CDATA[bI796LLOvjBrelhV]]>
    </nonce_str><product_id><![CDATA[2877662375]]></product_id><sign><![CDATA[F2DDB1AC7F1B8F470AA751B266E9197C]]></sign></xml>

    將xml解析成便於操作的array

  2. 商戶系統後臺生成商戶訂單

    在此處你可以拿這些資料來做一些判斷和處理操作。根據業務需要自由發揮

  3. notify_url引數解釋

    notify_url是一個url設定的要求和配置毀掉地址的要求一樣,要外網可以訪問,備案的,不能帶有引數的url。當支付完成後微信支付系統又會帶著一些引數訪問我們這個url,告訴我們支付結果及其他資訊。

  4. 將生成的預支付資料再傳給微信支付系統

    因為微信只接受xml資料所以我們要講物件中的資訊拼裝成xml資料

    為什麼要echo呢?因為我們要給微信支付系統而微信支付系統在訪問我們的這個方法所以我們echo後微信支付系統能夠接收到。