佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 微信公眾平臺(tái)開(kāi)發(fā)教程④ ThinkPHP框架下微信支付功能圖文詳解

微信公眾平臺(tái)開(kāi)發(fā)教程④ ThinkPHP框架下微信支付功能圖文詳解

熱門(mén)標(biāo)簽:Mysql連接數(shù)設(shè)置 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 銀行業(yè)務(wù) 團(tuán)購(gòu)網(wǎng)站 Linux服務(wù)器 服務(wù)器配置 阿里云 電子圍欄

本文實(shí)例講述了ThinkPHP框架下微信支付功能。分享給大家供大家參考,具體如下:

聲明:原文主要摘自白俊遙博客 ,部分內(nèi)容針對(duì)個(gè)人事例已作修改,主要用于自己的參考,歡迎指正。

注意:微信公眾號(hào)支付,強(qiáng)烈建議使用外網(wǎng)可訪問(wèn)的鏈接測(cè)試,否則即便代碼正確也無(wú)法調(diào)出支付界面,可使用草料二維碼生成可掃描圖片,也可直接在微信中輸入網(wǎng)址。

使用框架:ThinkPHP 3.2.3

一.微信公眾平臺(tái)信息配置

1).進(jìn)入微信公眾平臺(tái)

由左側(cè)的“微信支付”進(jìn)入配置界面,添加或修改正確的支付授權(quán)目錄,注意該目錄的要求,多建議精確到上一級(jí)目錄,并加斜線 /

2).授權(quán)域名

注意】:

    域名的確定都是工信部備案過(guò)的,初次開(kāi)發(fā)的很容易漏掉“www”,而截圖中不加“www”是因?yàn)槲覀儌浒傅脑?,記得只去掉“http://”。


二.ThinkPHP 框架,相應(yīng)代碼配置

    公眾號(hào)支付->場(chǎng)景參考

1).Weixinpay.php文件處理

    導(dǎo)入 Weixinpay.php文件到“/ThinkPHP/Library/Vendor/Weixinpay/”目錄下

    

    2).配置

    在項(xiàng)目的配置文件中,添加類(lèi)此如下的代碼,,其中的值需要自己根據(jù)實(shí)際公眾號(hào)的信息進(jìn)行配置【注意】:     很多人會(huì)搞錯(cuò)MCHID而造成不必要的時(shí)間浪費(fèi),具體開(kāi)發(fā)參照官方文檔。

/Application/Common/Conf/config.php


    3).支付函數(shù)的編輯

     即進(jìn)行點(diǎn)擊支付后的界面,其自動(dòng)調(diào)用微信的默認(rèn)支付框架。

【注意】

    進(jìn)行支付邏輯的處理,一定要記住,要求使用GET方式請(qǐng)求此頁(yè)面,即使用 get 方式將總金額、訂單號(hào)提交過(guò)來(lái)進(jìn)行處理,$data 可以接收

    

4).getParameters修改

    上述文件,需要修改其中的 getParameters()方法,其中標(biāo)記的位置,是根據(jù)實(shí)際的業(yè)務(wù)情況而從數(shù)據(jù)庫(kù)獲取的。具體代碼后面會(huì)有提供。

5).上述函數(shù),需要html的配合:/M/View/Cart/pay.html

    

    6).回調(diào)函數(shù)的編輯

【注意】

    該路徑必須要與配置文件中的回調(diào)路徑一致,此回調(diào)函數(shù),是根據(jù)微信是否真正完成支付后的數(shù)據(jù)更新,一般此處進(jìn)行訂單狀態(tài)的修改,比如,我在此處異步執(zhí)行的是將訂單號(hào)的支付狀態(tài)參數(shù)由0置為1.

    [個(gè)人測(cè)試發(fā)現(xiàn),此處 session 和 cookie 的設(shè)置都失效,僅做參考]


【注意】:    

先前發(fā)現(xiàn),因?yàn)槲⑿欧?wù)的設(shè)計(jì),會(huì)多次回調(diào) notify()以判斷是否真正的支付成功,而簡(jiǎn)單的update 操作是無(wú)法檢測(cè)的,為了同自己的平臺(tái)相關(guān)聯(lián),同理需要進(jìn)行狀態(tài)的判斷,否則不可避免的會(huì)多次執(zhí)行 notify_wx()中的邏輯處理

    7).如果是整合到自己的項(xiàng)目中

        需要在自己的公共函數(shù)中增加 curl_get_contents

    8).補(bǔ)充:

    (1).提醒:所提供的源代碼,剝離出了微信支付的核心,注意html頁(yè)面中對(duì)jquery.js的正確引用,pay.html基本是從微信公眾號(hào)官網(wǎng)直接下載的demo頁(yè),同時(shí)使用代碼前請(qǐng)配置微信支付url,且外網(wǎng)測(cè)試。

(2).此功能開(kāi)發(fā)中所遇到的各種坑!強(qiáng)烈建議參考、批評(píng).【重要

三.微信掃碼支付

1).場(chǎng)景分析

>場(chǎng)景參考

>一般的網(wǎng)站開(kāi)發(fā)中,如果是手機(jī)端,多數(shù)使用上面提到的公眾號(hào)支付方式,而掃碼支付多數(shù)出現(xiàn)在PC端,當(dāng)然也有部分手機(jī)網(wǎng)站有生成二維碼的需求,但是由于微信瀏覽器的識(shí)別限制,一種情況是直接在微信端瀏覽的購(gòu)物網(wǎng)站,通過(guò)長(zhǎng)按二維碼就可以識(shí)別;另一種情況是在另外的手機(jī)端瀏覽器,比如百度、頭條。 >如此一來(lái)除非用另一部手機(jī)進(jìn)行掃碼支付,或者將二維碼截圖保存后,再到微信中找到圖片進(jìn)行長(zhǎng)按識(shí)別。顯然后者用法過(guò)于繁瑣,所以處分針對(duì)于微信瀏覽器開(kāi)發(fā),否則不建議使用掃碼支付功能,而在PC端開(kāi)發(fā)則適合使用該功能

2).功能開(kāi)發(fā)

通用上文中介紹的功能開(kāi)發(fā)步驟 1)、2)、3)、6)、7)

3).補(bǔ)充函數(shù)

在 common/function.php 中補(bǔ)充函數(shù) weixinpay()和 qrcode()

4).設(shè)計(jì)顯示微信掃碼的頁(yè)面

    我定的頁(yè)面為 M/Order/mobilepayment.html,即通過(guò)訪問(wèn) Order/wechatpaymenter ,同時(shí)調(diào)用微信生成二維碼,在該頁(yè)面的 img> 標(biāo)簽中顯示出來(lái),具體代碼見(jiàn)后面的附錄

5).補(bǔ)充 wechatpaymenter 方法。



6).注意:

    模式二生成的二維碼也是有時(shí)間限制的,同時(shí),不能有權(quán)限攔截,并且,二維碼的生成是根據(jù)訂單號(hào)唯一確定的,如果生成一次,那么很可能第二次就不顯示,建議可用 time()代替測(cè)試。

掃碼支付模式參考

7).運(yùn)行結(jié)果截圖

在信息配置正確的情況下,功能結(jié)果如圖所示


四.附錄

1.源代碼參考 >>>

2.提醒:

  注意微信配置的正確性,如果有誤,微信支付會(huì)有報(bào)錯(cuò),二維碼則會(huì)無(wú)法生成.多參考官方文檔加深理解也是不錯(cuò)的選擇。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《PHP微信開(kāi)發(fā)技巧匯總》、《php curl用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP中json格式數(shù)據(jù)操作技巧匯總》及《PHP針對(duì)XML文件操作技巧總結(jié)》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • PHP遠(yuǎn)程連接oracle數(shù)據(jù)庫(kù)操作實(shí)現(xiàn)方法圖文詳解
  • ThinkPHP5.0框架使用build 自動(dòng)生成模塊操作示例
  • PHP生成隨機(jī)碼的思路與方法實(shí)例探索
  • PHP實(shí)現(xiàn)網(wǎng)站應(yīng)用微信登錄功能詳解
  • PHP之認(rèn)識(shí)(二)關(guān)于Traits的用法詳解
  • ThinkPHP框架下微信支付功能總結(jié)踩坑筆記
  • 微信公眾平臺(tái)開(kāi)發(fā)教程③ PHP實(shí)現(xiàn)微信公眾號(hào)支付功能圖文詳解
  • ThinkPHP框架實(shí)現(xiàn)的微信支付接口開(kāi)發(fā)完整示例
  • 在Ubuntu 18.04上安裝PHP 7.3 7.2和7.0的方法
  • PHP中str_split()函數(shù)的用法講解

標(biāo)簽:廣元 衡水 萍鄉(xiāng) 江蘇 衢州 大理 蚌埠 棗莊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《微信公眾平臺(tái)開(kāi)發(fā)教程④ ThinkPHP框架下微信支付功能圖文詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    花莲市| 镇巴县| 徐水县| 新绛县| 朝阳区| 衡南县| 会昌县| 玉树县| 闵行区| 古丈县| 武威市| 黑山县| 奉化市| 鱼台县| 堆龙德庆县| 庆安县| 慈利县| 内乡县| 嘉祥县| 威海市| 达拉特旗| 克东县| 多伦县| 阿拉善左旗| 沁源县| 扶风县| 柘荣县| 疏勒县| 顺昌县| 澎湖县| 昭平县| 平泉县| 广饶县| 武功县| 浦城县| 德格县| 喀什市| 静海县| 锡林郭勒盟| 黄浦区| 青田县|