亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

淺談使用PHP開發微信支付的流程

2024-05-04 23:39:26
字體:
來源:轉載
供稿:網友

本文是給大家簡單的介紹了下php開發微信支付的整個流程,對大家了解熟悉使用php開發微信支付非常有幫助,有需要的小伙伴可以參考下。

下面以PHP語言為例,對微信支付的開發流程進行一下說明。

1.獲取訂單信息

2.根據訂單信息和支付相關的賬號生成sign,并且生成支付參數

3.將支付參數信息POST到微信服務器,獲取返回信息

4.根據返回信息生成相應的支付代碼(微信內部)或是支付二維碼(非微信內),完成支付。

下面分步驟的講一下:

1.微信支付中相關的必須的訂單參數有三個,分別是:body(商品名或訂單描述),out_trade_no(一般為訂單號)和total_fee(訂單金額,單位“分”,要注意單位問題),在不同的應用中,首先要做的就是獲取訂單中的相關信息,為支付參數生成做準備。

2.其他必須的支付參數有 appid(微信appid),mch_id(申請成功后告知),device_info(web端和微信端該參數都是統一的,為大寫的”WEB“),trade_type(根據使用場景不同,該值也是不同的,微信外部為”NATIVE“,微信內部為”JSAPI“),nonce_str(32位隨機字符串),spbill_create_ip(發起支付的終端IP,即服務器IP),notify_url(支付回調地址,微信服務器通知網站支付完成與否,修改訂單狀態),sign(簽名),還有一個需要說明的地方,如果trade_type為JSAPI的話,openid為必填的參數。

簽名算法是比較容易出錯的地方,在于簽名步驟繁瑣,其實很關鍵的是,sign不參與簽名

?A:將1、2中提到的除sign外的參數賦值,放到一個數組array里面,按照字典順序排序,其實就是鍵值按照A—Z的順序進行排序。

B:將數組轉換成字符串string,格式為 k1=v1&k2=v2&...kN=vN

C:在此string后加上KEY值(在微信支付商戶后臺用戶自己設定的)現在string = k1=v1&k2=v2&...kN=vN&key=KEY。

D:string = md5(string)

E: sign = strtoupper(string)

至此,sign生成完畢。

將sign添加到array數組里面生成新的數組。將該數組轉換為XML。至此,微信支付的參數準備工作完成。

3.將2中生成的XML,使用POST的方式發送請求到微信(https://api.mch.weixin.qq.com/pay/unifiedorder),獲取返回的XML信息,將該信息轉換成數組格式方便操作。返回的XML信息如下:

 

  1. <xml> 
  2. <return_code><![CDATA[SUCCESS]]></return_code> 
  3. <return_msg><![CDATA[OK]]></return_msg> 
  4. <appid><![CDATA[wx2421b1c4370ec43b]]></appid> 
  5. <mch_id><![CDATA[10000100]]></mch_id> 
  6. <nonce_str><![CDATA[IITRi8Iabbblz1Jc]]></nonce_str> 
  7. <sign><![CDATA[7921E432F65EB8ED0CE9755F0E86D72F]]></sign> 
  8. <result_code><![CDATA[SUCCESS]]></result_code> 
  9. <prepay_id><![CDATA[wx201411101639507cbf6ffd8b0779950874]]></prepay_id> 
  10. <trade_type><![CDATA[JSAPI]]></trade_type> 
  11. </xml>  

如果是trade_type==native支付的話,還會多一個參數code_url,該URL為微信掃碼支付的地址。

4.下面就是支付的過程了。

如果trade_type==native,那么使用一些方式將code_url轉換成二維碼,使用微信掃碼就可以了,如果是微信內部點擊支付的話,需要調用微信js-sdk中的相關東西,這一步中最關鍵是生成一個json格式的字符串。

首先要生成轉換json字符串的數組array_jsapi。

A:該數組的參數包括:appId,timeStamp,nonceStr,package,signType(默認為”MD5“),要注意大小寫和上面的數組里面是不一樣的。

B:使用該數組生成paySign參數,簽名方式同上。

C:將paySign參數追加到array_jsapi數組中。

D:將該數組使用json_encode格式化為字符串js_string。

完成上面的工作,就可以在微信內部進行支付了。

下面為相關支付的示例代碼:

 

 
  1. <script type='text/javascript'
  2. function jsApiCall() 
  3. WeixinJSBridge.invoke( 
  4. 'getBrandWCPayRequest'
  5. $js_string, 
  6. function(res){ 
  7. WeixinJSBridge.log(res.err_msg); 
  8. if(res.err_msg=='get_brand_wcpay_request:ok'
  9. alert('支付成功'); 
  10. else 
  11. alert('支付失敗'); 
  12. ); 
  13. function callpay() 
  14. if (typeof WeixinJSBridge == 'undefined'){ 
  15. if( document.addEventListener ){ 
  16. document.addEventListener('WeixinJSBridgeReady', jsApiCall, false); 
  17. }else if (document.attachEvent){ 
  18. document.attachEvent('WeixinJSBridgeReady', jsApiCall);  
  19. document.attachEvent('onWeixinJSBridgeReady', jsApiCall); 
  20. }else
  21. jsApiCall(); 
  22. </script>  

代碼中js_string即為我們生成的字符串。

HTML代碼中調用callpay()函數發起支付。

這樣微信支付的支付工作就完成了。

下面是回調工作,該功能確保訂單支付成功后,有正確的狀態顯示給用戶。

支付完成后,微信使用POST請求,將支付結果反饋給網站服務器,網站服務器獲取POST信息,根據支付成功與否,來確定是否修改訂單信息。

A:將POST參數中的sign去除,并且記錄下來該值。

B:對剩余的參數進行簽名

C:將簽名結果和POST中的sign進行比對,相同說明簽名正確,根據支付結果修改訂單狀態。

E:返回XML信息給微信,確保微信知道網站已經收到該通知,避免微信再次推送POST,示例如下:

 

 
  1. <xml> 
  2. <return_code><![CDATA[SUCCESS]]></return_code> 
  3. <return_msg><![CDATA[OK]]></return_msg> 
  4. </xml>  

如果失敗,則返回

 

 
  1. <xml> 
  2. <return_code><![CDATA[FAIL]]></return_code> 
  3. <return_msg><![CDATA[失敗原因]]></return_msg> 
  4. </xml>  

至此,微信支付的整個開發介紹完畢。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
热久久美女精品天天吊色| 精品国产鲁一鲁一区二区张丽| 欧美日韩另类字幕中文| 亚洲国产成人一区| 欧美日韩国产精品一区二区不卡中文| 久久免费精品日本久久中文字幕| 欧美日韩国产中文精品字幕自在自线| 精品一区二区亚洲| 欧美丰满片xxx777| 亚洲影视中文字幕| 欧美在线观看一区二区三区| 亚洲在线视频福利| 欧美激情视频一区二区三区不卡| 久久久99免费视频| 欧美性猛交xxxx乱大交3| 亚洲图中文字幕| 91精品久久久久久久久久久久久| 正在播放亚洲1区| 成人av在线网址| 国产成人激情小视频| 久久69精品久久久久久国产越南| 成人激情视频小说免费下载| 中文在线资源观看视频网站免费不卡| 欧美日韩亚洲视频| 久久天天躁狠狠躁夜夜爽蜜月| 久久综合久中文字幕青草| 免费成人高清视频| 午夜精品在线视频| 久久精品色欧美aⅴ一区二区| 欧美激情a∨在线视频播放| 欧美精品在线极品| 久久久精品在线观看| 国产日韩在线视频| 丝袜情趣国产精品| 成人中文字幕+乱码+中文字幕| 亚洲高清久久网| 另类色图亚洲色图| 国产z一区二区三区| 日韩亚洲欧美中文高清在线| 亚洲va男人天堂| 亚洲另类图片色| 成人福利网站在线观看| 国产网站欧美日韩免费精品在线观看| 亚洲在线观看视频| 97视频免费在线看| 国产成人久久精品| 在线成人激情视频| 亚洲国产精久久久久久| 欧美性xxxxx极品| 欧美高清电影在线看| 欧美一区二区三区免费视| 不卡av电影在线观看| 午夜精品久久久99热福利| 成人在线激情视频| 日韩一区视频在线| 亚洲精品成人网| 欧美极品少妇xxxxⅹ喷水| 午夜精品一区二区三区在线播放| 国产视频在线一区二区| 懂色aⅴ精品一区二区三区蜜月| 中文字幕日韩av电影| 日韩电影中文字幕av| 2019精品视频| 97在线精品视频| 国产日韩专区在线| 热re99久久精品国产66热| 亚洲sss综合天堂久久| 性色av一区二区三区| 欧美亚洲国产成人精品| 精品二区三区线观看| 欧美日韩xxxxx| 日韩av最新在线| 欧美精品videosex极品1| 91国内产香蕉| 亚洲国产又黄又爽女人高潮的| 日韩一二三在线视频播| 欧美高清视频免费观看| 久久影院中文字幕| 最好看的2019年中文视频| 亚洲国产精彩中文乱码av| 狠狠爱在线视频一区| 久久久噜噜噜久久| 最近中文字幕2019免费| 国产亚洲欧洲高清| 欧美激情精品久久久久久久变态| 日韩成人中文字幕在线观看| 日韩欧美极品在线观看| 欧美国产日韩一区二区| 欧美激情二区三区| 国产精品久久久久久久久久免费| 国产成人综合亚洲| 91香蕉亚洲精品| 另类少妇人与禽zozz0性伦| 国产成人在线亚洲欧美| 国产欧美精品一区二区三区介绍| 国产精品美女www| 欧美韩国理论所午夜片917电影| 国产日韩欧美在线播放| 狠狠久久亚洲欧美专区| 另类少妇人与禽zozz0性伦| 欧美日韩成人网| 日韩国产精品视频| 欧美电影电视剧在线观看| 57pao成人永久免费视频| 久久免费国产视频| 日韩一区二区久久久| 亚洲中国色老太| 一区二区三区国产在线观看| 少妇久久久久久| 国产精品久久久久7777婷婷| 精品久久久久久国产| 97久久精品视频| 亚洲一二三在线| 欧美黑人xxxx| 亚洲变态欧美另类捆绑| 国产主播在线一区| 亚洲天堂av女优| 欧美午夜精品伦理| 日韩成人av在线| 国产精品久久婷婷六月丁香| 欧美放荡办公室videos4k| 国内精品久久久久久| 色综合久久88色综合天天看泰| 51久久精品夜色国产麻豆| 国产精品扒开腿做爽爽爽的视频| 欧美精品999| 日本欧美国产在线| 亚洲一区二区三区乱码aⅴ| 国产免费一区二区三区香蕉精| 91久久精品国产91性色| 国产精品免费视频xxxx| 欧美在线亚洲在线| 日韩欧美一区二区在线| 日韩视频免费中文字幕| 国产亚洲精品久久久久久777| 欧美精品做受xxx性少妇| 欧美成人免费在线视频| 国产精品成人aaaaa网站| 欧美日韩在线另类| 久久久这里只有精品视频| www.久久色.com| 久久久久中文字幕| 日韩中文字幕视频在线观看| 亚洲国产日韩一区| 欧美大片欧美激情性色a∨久久| 九色精品免费永久在线| 日韩精品视频免费在线观看| 中文.日本.精品| 少妇高潮久久77777| 久久精品久久久久久国产 免费| 国产精品久久久久久久久久ktv| 成人97在线观看视频| 欧美激情视频在线免费观看 欧美视频免费一| 91精品视频一区| 日韩在线免费视频观看| 国产97免费视| 日韩黄色在线免费观看| 亚洲国产精品久久久久秋霞蜜臀| 日韩有码片在线观看| 欧美性猛交xxxxx水多| 亚洲福利视频久久| 久久精品视频在线观看| 成人有码在线视频| 日韩电视剧免费观看网站|