本文閱讀對(duì)象:小程序集成微信支付涉及的技術(shù)構(gòu)架師,研制工程師,測(cè)試工程師,系統(tǒng)運(yùn)維工程師。
支付產(chǎn)品1、
付款碼支付
付款碼支付是用戶展示微信皮夾內(nèi)的“刷卡條形碼/二維碼”給商戶系統(tǒng)掃描后直接完成支付的模式。主要應(yīng)用線下邊旁邊收銀的場(chǎng)景。
2、
支付
支付是商戶系統(tǒng)按微信支付合同生成支付二維碼,用戶再用微信“掃一掃”完成支付的模式。該模式適用于PC網(wǎng)站支付、實(shí)體店單品或訂單支付、媒體廣告支付等場(chǎng)景。
3、
JSAPI支付
JSAPI支付是用戶在微信中打開商戶的H5頁面,商戶在H5頁面通過調(diào)用微信支付提供的JSAPI插口調(diào)起微信支付模塊完成支付。應(yīng)用場(chǎng)景有:
◆用戶在微信公眾帳號(hào)內(nèi)步入店家公眾號(hào),打開某個(gè)主頁面,完成支付
◆用戶的好友在同學(xué)圈、聊天窗口等分享店家頁面聯(lián)接,用戶點(diǎn)擊鏈接打開店家頁面,完成支付
◆將商戶頁面轉(zhuǎn)換成二維碼,用戶掃描二維碼后在微信瀏覽器中打開頁面后完成支付
4、
APP支付
APP支付又稱聯(lián)通端支付,是商戶通過在聯(lián)通端應(yīng)用APP中集成開放SDK調(diào)起微信支付模塊完成支付的模式。
5、
H5支付
H5支付主要是在手機(jī)、ipad等聯(lián)通設(shè)備中通過瀏覽器來喚醒微信支付的支付產(chǎn)品。
6、
小程序支付
小程序支付是專門被定義使用在小程序中的支付產(chǎn)品。目前在小程序中能且只能使用小程序支付的方法來喚醒微信支付。
名詞解釋1、
微信公眾平臺(tái)
微信公眾平臺(tái)是微信公眾帳號(hào)申請(qǐng)入口和管理后臺(tái)。商戶可以在公眾平臺(tái)遞交基本資料、業(yè)務(wù)資料、財(cái)務(wù)資料申請(qǐng)開通微信支付功能。
平臺(tái)入口:。
2、
微信開放平臺(tái)
微信開放平臺(tái)是商戶APP接入微信支付開放插口的申請(qǐng)入口,通過此平臺(tái)可申請(qǐng)微信APP支付。
平臺(tái)入口:。
3、
微信商戶平臺(tái)
微信商戶平臺(tái)是微信支付相關(guān)的商戶功能集合,包括參數(shù)配置、支付數(shù)據(jù)查詢與統(tǒng)計(jì)、在線退貨、代金券或立減讓利營(yíng)運(yùn)等功能。
平臺(tái)入口:。
4、
微信企業(yè)號(hào)
微信企業(yè)號(hào)是企業(yè)號(hào)的申請(qǐng)入口和管理后臺(tái),商戶可以在企業(yè)號(hào)遞交基本資料、業(yè)務(wù)資料、財(cái)務(wù)資料申請(qǐng)開通微信支付功能。
企業(yè)號(hào)入口:。
5、
微信支付系統(tǒng)
微信支付系統(tǒng)是指完成微信支付流程中涉及的API插口、后臺(tái)業(yè)務(wù)處理系統(tǒng)、賬務(wù)系統(tǒng)、回調(diào)通知等系統(tǒng)的統(tǒng)稱。
6、
微信小程序
微信小程序是微信提供給商戶實(shí)現(xiàn)APP的一種輕應(yīng)用,開發(fā)上去簡(jiǎn)單,易用。
入口:。
7、
商戶后臺(tái)系統(tǒng)
商戶后臺(tái)系統(tǒng)是商戶后臺(tái)處理業(yè)務(wù)系統(tǒng)的統(tǒng)稱,比如:商戶網(wǎng)站、收銀系統(tǒng)、進(jìn)銷存系統(tǒng)、發(fā)貨系統(tǒng)、客服系統(tǒng)等。
8、
商戶證書
商戶證書是微信提供的二補(bǔ)碼文件,商戶系統(tǒng)發(fā)起與微信支付后臺(tái)服務(wù)器通訊懇求的時(shí)侯,作為微信支付后臺(tái)辨識(shí)商戶真實(shí)身分的憑據(jù)。
9、
簽名
商戶后臺(tái)和微信支付后臺(tái)按照相同的秘鑰和算法生成一個(gè)結(jié)果,用于校準(zhǔn)雙方身分合法性。簽名的算法由微信支付擬定并公開,常用的簽名形式有:MD5、SHA1、、HMAC等。
10、
JSAPI網(wǎng)頁支付
JSAPI網(wǎng)頁支付即前文說的公眾號(hào)支付,可在微信公眾號(hào)、朋友圈、聊天會(huì)話中點(diǎn)擊頁面鏈接,或則用微信“掃一掃”掃描頁面地址二維碼在微信中打開商戶HTML5頁面,在頁面內(nèi)下單完成支付。
11、
支付密碼
支付密碼是用戶開通微信支付時(shí)單獨(dú)設(shè)置的密碼,用于確認(rèn)支付完成交易授權(quán)。該密碼與微信登陸密碼不同。
12、
用戶在小程序內(nèi)的身分標(biāo)示,不同小程序擁有不同的。商戶后臺(tái)系統(tǒng)通過登陸授權(quán)、支付通知、查詢訂單等API可獲取到用戶的。主要用途是判定同一個(gè)用??烧{(diào)用插口獲取。
支付帳戶
小程序認(rèn)證之后,可以在小程序后臺(tái),微信支付菜單欄,申請(qǐng)微信支付。
商戶在微信公眾平臺(tái)或開放平臺(tái)遞交微信支付申請(qǐng),微信支付工作人員初審資料無誤后開通相應(yīng)的微信支付權(quán)限。微信支付申請(qǐng)初審?fù)ㄟ^后,商戶在申請(qǐng)資料填寫的郵箱中繳納到由微信支付小助手發(fā)送的電郵,此短信包含開發(fā)時(shí)須要使用的支付帳戶信息,見圖3.1所示。
圖3.1微信初審?fù)ㄟ^短信模板
短信中的帳戶參數(shù)與插口API參數(shù)對(duì)應(yīng)關(guān)系見表格3.1:
表3.1帳戶參數(shù)說明
電郵中參數(shù)API參數(shù)名詳盡說明
APPID
appid
appid是微信小程序后臺(tái)APP的惟一標(biāo)示,在小程序后臺(tái)申請(qǐng)小程序帳號(hào)后,微信會(huì)手動(dòng)分配對(duì)應(yīng)的appid,用于標(biāo)示該應(yīng)用??稍谛〕绦?->設(shè)置-->開發(fā)設(shè)置中查看。
微信支付商戶號(hào)
商戶申請(qǐng)微信支付后,由微信支付分配的商戶收款帳號(hào)。
API秘鑰
key
交易過程生成簽名的秘鑰,僅保留在商戶系統(tǒng)和微信支付后臺(tái),不會(huì)在網(wǎng)路中傳播。商戶妥善保管該Key,請(qǐng)勿在網(wǎng)路中傳輸,不能在其他顧客端中儲(chǔ)存,保證key不會(huì)被泄露。商戶可依照電郵提示登陸微信商戶平臺(tái)進(jìn)行設(shè)置。也可按以下路徑設(shè)置:微信商戶平臺(tái)()-->帳戶設(shè)置-->API安全-->秘鑰設(shè)置
是APPID對(duì)應(yīng)的插口密碼,用于獲取插口調(diào)用賬簿時(shí)使用。
合同規(guī)則
商戶接入微信支付,調(diào)用API必須遵守以下規(guī)則:
表4.1插口規(guī)則
傳輸方法
為保證交易安全性,采用HTTPS傳輸
遞交方法
采用POST方式遞交
數(shù)據(jù)格式
遞交和返回?cái)?shù)據(jù)都為XML格式,根節(jié)點(diǎn)名為xml
字符編碼
統(tǒng)一采用UTF-8字符編碼
簽名算法
MD5,后續(xù)會(huì)兼容SHA1、、HMAC等。
簽名要求
懇求和接收數(shù)據(jù)均須要校準(zhǔn)簽名,詳盡方式請(qǐng)參考安全規(guī)范-簽名算法
證書要求
調(diào)用申請(qǐng)退票、撤銷訂單插口須要商戶證書
判定邏輯
先判別合同數(shù)組返回,再判定業(yè)務(wù)返回,最后判定交易狀態(tài)
參數(shù)規(guī)定1、交易金額
交易金額默認(rèn)為人民幣交易,插口中參數(shù)支付金額單位為【分】,參數(shù)值不能帶小數(shù)。對(duì)帳單中的交易金額單位為【元】。
外幣交易的支付金額精確到幣種的最小單位,參數(shù)值不能帶小數(shù)點(diǎn)。
2、交易類型
JSAPI--JSAPI支付(或小程序支付)、--支付、APP--app支付,MWEB--H5支付,不同決定了調(diào)起支付的形式,請(qǐng)依照支付產(chǎn)品正確上傳
--付款碼支付,付款碼支付有單獨(dú)的支付插口,所以插口不須要上傳,該數(shù)組在對(duì)帳單中會(huì)出現(xiàn)
3、貨幣類型
貨幣類型的取值列表:
CNY:人民幣
4、時(shí)間
標(biāo)準(zhǔn)廣州時(shí)間,時(shí)區(qū)為東八區(qū);假如商戶的系統(tǒng)時(shí)間為非標(biāo)準(zhǔn)廣州時(shí)間。參數(shù)值必須依照商戶系統(tǒng)所在時(shí)區(qū)先換算成標(biāo)準(zhǔn)廣州時(shí)間,比如商戶所在地為0時(shí)區(qū)的巴黎,當(dāng)?shù)貢r(shí)間為2014年11月11日0時(shí)0分0秒微信訂單系統(tǒng),換算成上海時(shí)間為2014年11月11日8時(shí)0分0秒。
5、時(shí)間戳
標(biāo)準(zhǔn)廣州時(shí)間,時(shí)區(qū)為東八區(qū),自1970年1月1日0點(diǎn)0分0秒以來的秒數(shù)。注意:部份系統(tǒng)取到的值為微秒級(jí),須要轉(zhuǎn)換成秒(10位數(shù)字)。
6、商戶訂單號(hào)
商戶支付的訂單號(hào)由商戶自定義生成,僅支持使用字母、數(shù)字、中劃線-、下劃線_、豎線|、星號(hào)*這種英語全角字符的組合,切勿使用漢字或半角等特殊字符。微信支付要求商戶訂單號(hào)保持惟一性(建議按照當(dāng)前系統(tǒng)時(shí)間加隨機(jī)序列來世成訂單號(hào))。重新發(fā)起一筆支付要使用原訂單號(hào),防止重復(fù)支付;已支付過或已調(diào)用關(guān)單、撤銷(請(qǐng)見后文的API列表)的訂單號(hào)不能重新發(fā)起支付。
7、body數(shù)組格式使用場(chǎng)景支付模式商品數(shù)組規(guī)則樣例備注
PC網(wǎng)站
掃碼支付
瀏覽器打開的網(wǎng)站主頁title名-商品概述
騰訊沖值中心-QQ會(huì)員沖值
微信瀏覽器
公眾號(hào)支付
店家名稱-銷售商品類目
騰訊-游戲
線上電商,店家名稱必須為實(shí)際銷售商品的店家
分店掃碼
公眾號(hào)支付
菜名-銷售商品類目
小張南山店-商場(chǎng)
線下店面支付
分店掃碼
掃碼支付
菜名-銷售商品類目
小張南山店-商場(chǎng)
線下店面支付
分店刷卡
刷卡支付
菜名-銷售商品類目
小張南山店-商場(chǎng)
線下店面支付
第三方手機(jī)瀏覽器
H5支付
瀏覽器打開的聯(lián)通網(wǎng)頁的主頁title名-商品概述
騰訊沖值中心-QQ會(huì)員沖值
第三方APP
APP支付
應(yīng)用市場(chǎng)上的APP名子-商品概述
天天愛去除-游戲沖值
1、簽名算法
(簽名校準(zhǔn)工具)
簽名生成的通用步驟如下:
第一步,設(shè)所有發(fā)送或則接收到的數(shù)據(jù)為集合M,將集合M內(nèi)非空參數(shù)值的參數(shù)根據(jù)參數(shù)名ASCII碼從小到大排序(字典序),使用URL通配符對(duì)的格式(即key1=&key2=…)拼接成字符串。
非常注意以下重要規(guī)則:
◆參數(shù)名ASCII碼從小到大排序(字典序);
◆如果參數(shù)的值為空不參與簽名;
◆參數(shù)名分辨大小寫;
◆驗(yàn)證調(diào)用返回或微信主動(dòng)通知簽名時(shí),傳送的sign參數(shù)不參與簽名,將生成的簽名與該sign值作校準(zhǔn)。
◆微信插口可能降低數(shù)組,驗(yàn)證簽名時(shí)必須支持降低的擴(kuò)充數(shù)組
第二步,在最后拼接上key得到字符串,并對(duì)進(jìn)行MD5運(yùn)算,再將得到的字符串所有字符轉(zhuǎn)換為小寫,得到sign值。
◆key設(shè)置路徑:微信商戶平臺(tái)()-->帳戶設(shè)置-->API安全-->秘鑰設(shè)置
舉例:
假定傳送的參數(shù)如下:
appid:
:
:1000
body:test
:
第一步:對(duì)參數(shù)根據(jù)key=value的格式,并根據(jù)參數(shù)名ASCII字典序排序如下:
="appid=&body=test&=1000&=&=";
第二步:拼接API秘鑰:
=+"&key="http://注:key為商戶平臺(tái)設(shè)置的秘鑰key
sign=MD5().()=""http://注:MD5簽名形式
sign=("",,key).()="ACD6"http://注:HMAC-簽名形式
最終得到最終發(fā)送的數(shù)據(jù):
1000
test
2、生成隨機(jī)數(shù)算法
微信支付API插口合同中包含數(shù)組,主要保證簽名不可預(yù)測(cè)。我們推薦生成隨機(jī)數(shù)算法如下:調(diào)用隨機(jī)數(shù)函數(shù)生成,將得到的值轉(zhuǎn)換為字符串。
3、API證書
(1)獲取API證書(哪些是api證書?怎么升級(jí)?)
微信支付插口中,涉及資金回滾的插口會(huì)使用到API證書,包括退貨、撤銷插口。店家在申請(qǐng)微信支付成功后,收到的相應(yīng)電郵后,可以根據(jù)指引下載API證書,也可以根據(jù)以下路徑下載:微信商戶平臺(tái)()-->帳戶中心-->帳戶設(shè)置-->API安全。證書文件說明如下:
證書附件描述使用場(chǎng)景備注
格式
(.p12、
包含了公鑰信息的證書文件,為p12(pfx)格式,由微信支付簽發(fā)給您拿來標(biāo)示和劃分您的身分
撤消、退款申請(qǐng)API中調(diào)用
上可以直接雙擊導(dǎo)出系統(tǒng),導(dǎo)出過程中會(huì)提示輸入證書密碼,證書密碼默認(rèn)為您的商戶ID(如:)
以下兩個(gè)證書在PHP環(huán)境中使用:
證書附件描述使用場(chǎng)景備注
證書pem格式
(.pem)
從.p12中導(dǎo)入證書部份的文件,為pem格式,請(qǐng)妥善保管不要泄露和被別人復(fù)制
PHP等不能直接使用p12文件,而須要使用pem,為了便捷您使用,已為您直接提供
您也可以使用命令來自己導(dǎo)入:---.p12-.pem
證書秘鑰pem格式
(.pem)
從.pem中導(dǎo)入秘鑰部份的文件,為pem格式,請(qǐng)妥善保管不要泄露和被別人復(fù)制
PHP等不能直接使用p12文件,而須要使用pem,為了便捷您使用,已為您直接提供
您也可以使用命令來自己導(dǎo)入:--.p12-.pem
(2)使用API證書
(3)API證書安全
1.證書文件不能放到web服務(wù)器虛擬目錄微信訂單系統(tǒng),應(yīng)置于有訪問權(quán)限控制的目錄中,避免被別人下載;
2.建議將證書文件名改為復(fù)雜且不容易猜想的文件名;
3.商戶服務(wù)器要做好病毒和木馬防護(hù)工作,不被非法侵入者泄露證書文件。
4、商戶反彈API安全
在普通的網(wǎng)路環(huán)境下,HTTP懇求存在DNS綁架、運(yùn)營(yíng)商插入廣告、數(shù)據(jù)被泄露,正常數(shù)據(jù)被更改等安全風(fēng)險(xiǎn)。商戶反彈插口使用HTTPS合同可以保證數(shù)據(jù)傳輸?shù)陌踩?。所以微信支付建議商戶提供給微信支付的各類反彈采用HTTPS合同。請(qǐng)參考:HTTPS搭建手冊(cè)。
上一篇:小程序外賣點(diǎn)餐系統(tǒng)做一個(gè)大概需要多少錢
下一篇:“樸食科技”創(chuàng)業(yè)團(tuán)隊(duì)的臺(tái)前幕后|飯?zhí)脦煾禃?huì)
免責(zé)聲明:部分文章信息來源于網(wǎng)絡(luò)以及網(wǎng)友投稿,本站只負(fù)責(zé)對(duì)文章進(jìn)行整理、排版、編輯,出于傳遞更多信息之目的,并不意味著贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,如本站文章和轉(zhuǎn)稿涉及版權(quán)等問題,請(qǐng)作者在及時(shí)聯(lián)系本站,我們會(huì)盡快為您處理。
熱門資訊
- 美團(tuán)外賣的抽成規(guī)則 餓了么抽點(diǎn)比例是多少
- 外賣好評(píng)30字有哪些 常見的外賣評(píng)語大全
- 木屋燒烤價(jià)目表一覽 微信外賣訂餐系統(tǒng)推薦
- 海底撈排隊(duì)取號(hào)微信是多少 海底撈是怎么預(yù)約排隊(duì)
- 如何通過微信掃碼支付找到支付人微信號(hào)?看這里!
- 胡桃里消費(fèi)人均大概是多少錢 二維碼掃碼點(diǎn)餐系統(tǒng)哪個(gè)好用
- 美團(tuán)外賣怎么點(diǎn)兩份?步驟及注意事項(xiàng)??!
- 肯德基優(yōu)惠券怎么獲得 肯德基微信外賣怎么點(diǎn)
- 連鎖收銀系統(tǒng)對(duì)連鎖門店運(yùn)營(yíng)會(huì)有怎么樣的影響?
- 微信公眾號(hào)點(diǎn)餐是怎么實(shí)現(xiàn) 餐飲商家怎么制作外賣訂餐系統(tǒng)