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

首頁 > 學院 > 開發設計 > 正文

微信支付開發流程

2019-11-14 14:45:16
字體:
來源:轉載
供稿:網友

授人以魚不如授人以漁

微信支付開發流程

下面以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信息如下:

<xml>   <return_code><![CDATA[SUCCESS]]></return_code>   <return_msg><![CDATA[OK]]></return_msg>   <appid><![CDATA[wx2421b1c4370ec43b]]></appid>   <mch_id><![CDATA[10000100]]></mch_id>   <nonce_str><![CDATA[IITRi8Iabbblz1Jc]]></nonce_str>   <sign><![CDATA[7921E432F65EB8ED0CE9755F0E86D72F]]></sign>   <result_code><![CDATA[SUCCESS]]></result_code>   <PRepay_id><![CDATA[wx201411101639507cbf6ffd8b0779950874]]></prepay_id>   <trade_type><![CDATA[JSAPI]]></trade_type></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。

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

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

<script type='text/javascript'>	                                function jsApiCall()					{						WeixinJSBridge.invoke(							'getBrandWCPayRequest',							$js_string,							function(res){								WeixinJSBridge.log(res.err_msg);									if(res.err_msg=='get_brand_wcpay_request:ok')									{										alert('支付成功');									}									else									{										alert('支付失敗');									}							}						);					}					function callpay()					{						if (typeof WeixinJSBridge == 'undefined'){						    if( document.addEventListener ){						        document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);						    }else if (document.attachEvent){						        document.attachEvent('WeixinJSBridgeReady', jsApiCall); 						        document.attachEvent('onWeixinJSBridgeReady', jsApiCall);						    }						}else{						    jsApiCall();						}					}				</script>

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

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

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

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

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

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

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

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

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

<xml>  <return_code><![CDATA[SUCCESS]]></return_code>  <return_msg><![CDATA[OK]]></return_msg></xml>

如果失敗,則返回

<xml>  <return_code><![CDATA[FAIL]]></return_code>  <return_msg><![CDATA[失敗原因]]></return_msg></xml>

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

有任何疑問,請聯系QQ:97695870

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩亚洲欧美中文在线| 国产欧美精品日韩精品| 国产亚洲人成a一在线v站| 久久久国产在线视频| 午夜精品久久久久久久男人的天堂| 青草青草久热精品视频在线网站| 中文字幕欧美亚洲| 91社影院在线观看| 清纯唯美亚洲激情| 在线精品高清中文字幕| 91在线观看免费| 国产日韩欧美夫妻视频在线观看| 久久久国产视频91| 久久天天躁狠狠躁夜夜av| 精品中文字幕在线观看| 91高清视频在线免费观看| 91色视频在线观看| 国产乱肥老妇国产一区二| 久久天天躁日日躁| 日韩精品中文字幕在线观看| 亚洲码在线观看| 亚洲全黄一级网站| 亚洲男人天堂2024| 狠狠色狠狠色综合日日五| 国产精品视频公开费视频| 久久99精品久久久久久噜噜| 亚洲成人教育av| 国内精品久久久久影院优| 亚洲一级片在线看| 亚洲sss综合天堂久久| 日韩中文理论片| 国产精品久久久久影院日本| 日韩欧美亚洲范冰冰与中字| 欧美在线免费观看| 欧美性猛交99久久久久99按摩| 97精品在线视频| 在线a欧美视频| 久久最新资源网| 日韩精品极品在线观看| 精品无人国产偷自产在线| 国产成人精品在线| 国产精品一区二区女厕厕| 欧美日韩亚洲一区二区| 日韩中文综合网| 一区二区三区回区在观看免费视频| 日韩成人在线视频观看| 亚洲男人天堂古典| 日韩中文字幕国产精品| 亚洲影影院av| 国产精品扒开腿做爽爽爽视频| 欧美亚洲国产视频小说| 国产欧美va欧美va香蕉在| 亚洲免费av片| 国产精品777| 国产精品第七影院| 欧美精品久久久久久久久| 综合欧美国产视频二区| 欧美成人国产va精品日本一级| 国产精品2018| 日本精品久久久久影院| 亚洲大胆人体视频| 日韩av三级在线观看| 久久久免费精品视频| 日日噜噜噜夜夜爽亚洲精品| 一区二区三欧美| 亚洲精品之草原avav久久| 成人写真福利网| 久久影院资源网| 日本欧美黄网站| 91理论片午午论夜理片久久| 精品国产欧美成人夜夜嗨| 亚洲激情成人网| 91av在线网站| 亚洲韩国青草视频| 亚洲国产成人在线播放| 国产精品观看在线亚洲人成网| 亚洲毛片在线免费观看| 日本久久久久久| 亚洲女人天堂av| 亚洲男人天堂2024| 91精品国产乱码久久久久久蜜臀| 日韩不卡在线观看| 国产视频亚洲视频| 亚洲精品成人网| 欧美成人激情在线| 国产+人+亚洲| 日韩欧美一区二区三区久久| 自拍偷拍免费精品| 97精品视频在线播放| 成人免费网视频| 亚洲影院高清在线| 亚洲精品色婷婷福利天堂| 成人午夜在线视频一区| 亚洲黄在线观看| 国产免费一区二区三区香蕉精| 欧美久久精品午夜青青大伊人| 日韩在线视频网站| 45www国产精品网站| 久久精品久久久久久| 亚洲一区二区三区久久| 91九色国产社区在线观看| 欧美成人亚洲成人日韩成人| 欧美日韩中文字幕| 欧美性猛交xxxxx免费看| 午夜精品在线视频| 欧美激情第6页| 国产精品久久网| 狠狠躁18三区二区一区| 精品福利樱桃av导航| 日韩精品中文字幕在线播放| 国产精品香蕉在线观看| 成人在线视频福利| 亚洲视频电影图片偷拍一区| 欧美色videos| 91色视频在线导航| 国产一区二区三区日韩欧美| 久久精品视频导航| 久久欧美在线电影| 亚洲精品电影在线| 国产综合久久久久久| 亚洲午夜女主播在线直播| 久久99视频免费| 日韩av黄色在线观看| 亚洲视频网站在线观看| 亚洲国产精品高清久久久| 88国产精品欧美一区二区三区| 日韩电影第一页| 亚洲福利视频网站| 成人午夜黄色影院| 中文字幕国产日韩| 久久久av亚洲男天堂| 热久久这里只有精品| 国产欧美 在线欧美| 欧美在线国产精品| 久久99久国产精品黄毛片入口| 亚洲最大的av网站| 色噜噜国产精品视频一区二区| 日韩免费高清在线观看| 国产精品88a∨| 国产欧美日韩高清| 中文字幕欧美日韩| 国外成人在线视频| 欧美成人四级hd版| 国自在线精品视频| 欧美视频第一页| 欧美又大又粗又长| 91精品国产91久久久久久久久| 性夜试看影院91社区| 亚洲欧美国产一本综合首页| 午夜伦理精品一区| 欧美大片大片在线播放| 亚洲人成毛片在线播放| 久久久人成影片一区二区三区| 亚洲国产另类久久精品| 欧美特级www| 亚洲精品网站在线播放gif| 久久偷看各类女兵18女厕嘘嘘| 国产午夜一区二区| www.久久色.com| 日韩精品在线视频美女| 日韩在线小视频| 性色av一区二区三区在线观看| 亚洲精品欧美日韩专区| 国产精品丝袜久久久久久不卡|