微信支付API文檔120(受理)_第1頁
微信支付API文檔120(受理)_第2頁
微信支付API文檔120(受理)_第3頁
微信支付API文檔120(受理)_第4頁
微信支付API文檔120(受理)_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1.閱讀對象本文閱讀對象:商戶系統(tǒng)(在線購物平臺、人工收銀系統(tǒng)、自動化智能收銀系統(tǒng)或其他)集成微信支付涉及的技術架構師,研發(fā)工程師,測試工程師,系統(tǒng)運維工程師。2.術語支付模式被掃支付掃付用展微的卡碼維碼商系掃后接成付模要用線下面對面收銀的場景。掃碼支付掃碼支付是商戶系統(tǒng)按微信支付協(xié)議生成支付二維碼,用戶再用微信“掃一掃”完成支付的模式。該模式適用于網站支付、實體店單品或訂單支付、媒體廣告支付等場景。微信內網頁支付微信內網頁支付是用戶在微信中打開商戶的H5頁面,商戶在H5頁面通過調用微信支付提供的接口調起微信支付模塊完成支付。應用場景有:? 用戶在微信公眾賬號內進入商家公眾號,打開某個主頁面,完成支付;? 用戶的好友在朋友圈、聊天窗口等分享商家頁面連接,用戶點擊鏈接打開商家頁面,完成支付? 將商戶頁面轉換成二維碼,用戶掃描二維碼后在微信瀏覽器中打開頁面后完成支付P付稱動支商通在動應用P集開放DK起信付塊成付的模式。普通瀏覽器網頁支付模式正在建設中,敬請期待。名詞解釋微信公眾平臺微信公眾平臺是微信公眾賬號申請入口和管理后臺。商戶可以在公眾平臺提交基本資料、業(yè)務資料、財務資料申請開通微信支付功能。平臺入口:。微信開放平臺微信開放平臺是商戶接入微信支付開放接口的申請入口,通過此平臺可申請微信支付。平臺入口:。微信商戶平臺微信商戶平臺是微信支付相關的商戶功能集合,包括參數(shù)配置、支付數(shù)據查詢與統(tǒng)計、在線退款、代金券或立減優(yōu)惠運營等功能。平臺入口:。微信支付系統(tǒng)微信支付系統(tǒng)是指完成微信支付流程中涉及的商戶收銀系統(tǒng)商戶收銀系統(tǒng)即商戶的入信付能要及到OS件統(tǒng)開和試以下中到商收系特指OS軟件系統(tǒng)。商戶后臺系統(tǒng)商戶后臺系統(tǒng)是商戶后臺處理業(yè)務系統(tǒng)的總稱,例如:商戶網站、收銀系統(tǒng)、進銷存系統(tǒng)、發(fā)貨系統(tǒng)、客服系統(tǒng)等。一種輸入設備,主要用于商戶系統(tǒng)快速讀取媒介上的圖形編碼信息。按讀取碼的類型不同,可分為條碼掃碼設備和二維碼掃碼設備。按讀取物理原理可分為紅外掃碼設備、激光掃碼設備。商戶證書是微信提供的二進制文件,商戶系統(tǒng)發(fā)起與微信支付后臺服務器通信請求的時候,作為微信支付后臺識別商戶真實身份的憑據。商戶后臺和微信支付后臺根據相同的密鑰和算法生成一個結果,用于校驗雙方身份合法性。簽名的算法由微信支付制定并公開,常用的簽名方式有:MD5、SHA1、SHA256、HMAC前說微內頁付在信眾號友圈天話點頁鏈接者微一”掃描頁面地址二維碼在微信中打開商戶HTML5頁面,在頁面內下單完成支付。原生支付屬于掃碼支付,商戶根據微信支付協(xié)議格式生成的二維碼,用戶通過微信“掃一掃”掃描二維碼后即進入付款確認界面,輸入密碼即完成支付。支付密碼是用戶開通微信支付時單獨設置的密碼,用于確認支付完成交易授權。該密碼與微信登錄密碼不戶公號的份識不公號有同的pnid商后系通登授、付知查詢訂單等可獲取到用戶的openid。主要用途是判斷同一個用戶,對用戶發(fā)送客服消息、模版消息等。3.支付賬戶商戶在微信公眾平臺(申請掃碼原生支付、微信內網頁支付)或開放平臺(申請支付)按照相應提示,申相微支模信付作員核料誤開相的信付限信付請核過后,商戶在申請資料填寫的郵箱中收取到由微信支付小助手發(fā)送的郵件,此郵件包含開發(fā)時需要使用的支付賬戶信息,見圖所示。圖微信審核通過郵件模板郵件中的賬戶參數(shù)與接口參數(shù)對應關系見表格3.1:表3.1:賬戶參數(shù)說明郵件中參數(shù)參數(shù)名稱詳細說明appd是微信公眾賬號或開放平臺P的唯一標識在公眾平臺申請公眾賬號或者在開放平臺申請P賬號后微信會自動分配對應的appd用于標識該應用。商戶的微信支付審核通過郵件中也會包含該字段值。微信支付商戶號商戶申請微信支付后,由微信支付分配的商戶收款賬號。密鑰交易過程生成簽名的密鑰,僅保留在商戶系統(tǒng)和微信支付后臺,不會在網絡中傳播。商戶妥善保管該key不會被泄漏。商戶可根據郵件提示登錄微信商戶平臺進行設置。secret是對應的接口密碼,用于獲取接口調用憑證時使用在微信支付中先通過uth2.0接口獲取用戶opni此opeid用于微信內網頁支付模式下單接口使用。在開發(fā)模式中獲取帳號沒有異常狀態(tài))。4.接口規(guī)則協(xié)議規(guī)則商戶接入微信支付,調用必須遵循以下規(guī)則:表4.1:接口規(guī)則傳輸方式為保證交易安全性,采用傳輸提交方式采用方法提交數(shù)據格式提交和返回數(shù)據都為格式,根節(jié)點名為字符編碼統(tǒng)一采用字符編碼簽名算法等。簽名要求請求和接收數(shù)據均需要校驗簽名,簽名的詳細方法請參考下文第4.3.1節(jié)證書要求調用申請退款、撤銷訂單接口需要商戶證書判斷邏輯先判斷協(xié)議字段返回,再判斷業(yè)務返回,最后判斷交易狀態(tài)參數(shù)規(guī)定交易金額默認為人民幣交易,接口中參數(shù)支付金額單位為【分】,參數(shù)值不能帶小數(shù)。對賬單中的交易金額單位為【元】。外幣交易的支付金額精確到幣種的最小單位,參數(shù)值不能帶小數(shù)點。貨幣類型的取值列表:CNY:人民幣GBP:英鎊HKD:港幣USD:美元JPY:日元CAD:加拿大元AUD:澳大利亞元EUR:歐元注:退款幣種與支付幣種必須一致先算先算標北時,如戶在為0區(qū)倫地間為04年1月1日0時0分0秒,換算成北京時間為年月日8時0分0時間戳年1月1日0點0分0為毫秒級,需要轉換成秒(10位數(shù)字)。商戶訂單號商戶支付的訂單號由商戶自定義生成,微信支付要求商戶訂單號保持唯一性(建議根據當前系統(tǒng)時間加隨序來成單新起筆付使原單號免復付支過已用單(請見后文的列表)的訂單號不能重新發(fā)起支付。NATIVE:即掃碼支付MICROPAY:即被掃支付WAP:非微信手機瀏覽器支付安全規(guī)范1 簽名算法簽名生成的通用步驟如下:第一步,設所有發(fā)送或者接收到的數(shù)據為集合M,將集合M內非空參數(shù)值的參數(shù)按照參數(shù)名稱的ASCII從到排典序用URL值的即k1=vaue&k2=vaue2接字串srnA。特別注意以下重要規(guī)則:》 參數(shù)名稱碼從小到大排序(字典序);》 如果參數(shù)的值為空不參與簽名;》 參數(shù)名稱區(qū)分大小寫;》 驗證調用返回或微信主動通知簽名時,傳送的參數(shù)不參與簽名,將生成的簽名與該值》 微信接口可能增加字段,驗證簽名時必須支持增加的擴展字段第二步,在最后拼接上key=(API密鑰的值)得到stringSignTemp字符串,并對運算,再將得到的字符串所有字符轉換為大寫,得到值signValue。舉例:假設傳送的參數(shù)如下:appidappid: wxd930ea5d5a258f4f100001001000bodybody: nonce_strnonce_str: ibuaiVcKdpRxkhJA第一步:對參數(shù)按照的格式,并按照參數(shù)名稱字典序排序如下:stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibstringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";uaiVcKdpRxkhJA";第二步:拼接密鑰:stringSignTemp="stringA&key=192006250b4c09247ec02edce69f6a2d"stringSignTemp="stringA&key=192006250b4c09247ec02edce69f6a2d"ssn=D5(sriginTp)tUpprCse()="AA65F05D684972C09C37"最終得到最終發(fā)送的數(shù)據:微信提供相關接口在線簽名驗證工具:點擊進入。2 微信支付接口協(xié)議中包含字段nonce_str,主要保證簽名不可預測。我們推薦生成隨機數(shù)算法如下:調用隨機數(shù)函數(shù)生成,將得到的值轉換為字符串。3 獲取商戶證書微信支付接口中,涉及資金回滾的接口會使用到商戶證書,包括退款、撤銷接口。商家在申請微信支付成功后,收到的相應郵件通知中,附件會包含接口需要用到的證書文件,有四個證書文件,分別說明如下。表4.2:證書文件說明證書附件描述使用場景備注格式包含了私鑰信息的證書文撤銷、退款申請中調用上可以直接雙擊導入系統(tǒng),件,為導入過程中會提示輸入證書密碼,證信支付簽發(fā)給您用來標識和書密碼默認為您的商戶界定您的身份證書pem格式從中導出等不能直接使用p12文您也可以使用命令來自己導證書部分的文件為pem格件,而需要使用式,請妥善保管不要泄漏和方便您使用,已為您直接提-in-out被他人復制供證書密鑰pem格式從中導出等不能直接使用p12文您也可以使用命令來自己導密鑰部分的文件為pem格件,而需要使用-in式方便您使用,已為您直接提-out供證書微信支付api服務器上也部該文件為簽署微信支付證書部分工具已經內置了若干權威機構的署了證明微信支付身份的服的權威機構的根證書,可以根證書,無需引用該證書也可以正常務器證書,您在使用api進用來驗證微信支付服務器證進行驗證,這里提供給您在未內置所行調用時也需要驗證所調用書的真實性必須根證書的環(huán)境中載入使用服務器及域名的真實性使用商戶證書。 是商戶證書文件,除外的開發(fā)均使用此證書文件。。 商戶如果使用.NET環(huán)境開發(fā),請確認版本大于2.0,必須在操作系統(tǒng)上雙擊安裝證書后才能被正常調用。。 商戶證書調用或安裝都需要使用到密碼,該密碼的值為微信商戶號(mch_id)開發(fā)環(huán)境請使用商戶證書文件和是CA證各版本的調用實例請參考微信支付提供的Demo。商戶證書安全書件能在eb務虛目錄放有問限制目中止他下載戶務器要做好病毒和木馬防護工作,不被非法侵入者竊取證書文件。4 商戶回調在普通的網絡環(huán)境下,HTTP請求存在DNS劫持、運營商插入廣告、數(shù)據被竊取,正常數(shù)據被修改等安全風險。商戶回調接口使用協(xié)議可以保證數(shù)據傳輸?shù)陌踩?。所以微信支付建議商戶提供給微信支付的各種回調采用HTTPS協(xié)議。請參考:HTTPS搭建指南。5.被掃支付模式開發(fā)指引場景介紹驟1戶擇掃付款并開信我-包-卡碼圖1示;2:收銀員在商戶系統(tǒng)操作生成支付訂單,用戶確認支付金額;3:商戶收銀員用掃碼設備掃描用戶的條碼/二維碼,商戶收銀系統(tǒng)提交支付;4:微信支付后臺系統(tǒng)收到支付請求,根據驗證密碼規(guī)則判斷是否驗證用戶的支付密碼,不需要驗證密碼的交易直接發(fā)起扣款,需要驗證密碼的交易會彈出密碼輸入框(如圖所示)。支付成功后微信端會彈出成功頁面(如圖所示),支付失敗會彈出錯誤提示。 圖5.1我的錢包刷卡界面 圖5.2輸入密碼,確認支付 圖5.3支付成功后頁面提示支付驗證密碼規(guī)則? 支付金額>300元的交易需要驗證用戶支付密碼;? 用戶賬號每天最多有筆交易可以免密,超過后需要驗證密碼;? 微信支付后臺判斷用戶支付行為有異常情況,符合免密規(guī)則的交易也會要求驗證密碼;案例介紹目前已上線被掃支付案例,商戶可自行前往店里實際體驗。便利店:711便利店、國大36524、好鄰居等連鎖藥店:老百姓大藥房、國大藥房、海王星辰等超市:天虹等商戶側流程根據商戶具體的情況,被掃支付接入模式可分為:商戶后臺接入和門店接入;根據用戶是否需要輸入支付密碼可分為:免密模式和驗密模式。1 接入模式-商戶后臺接入該模式適合具備統(tǒng)一后臺系統(tǒng)的商戶。門店收銀臺與商戶后臺通信,商戶后臺系統(tǒng)負責與微信支付系統(tǒng)發(fā)送交易請求和接收返回結果。圖5.4商戶后臺接入被掃支付2 接入模式-門店接入該模式適合門店收銀臺通過公網直接與微信后臺通信的商戶。門店收銀臺直接發(fā)起交易請求和處理返回結果。商戶可以根據實際需要,處理門店和商戶后臺系統(tǒng)之間的其它業(yè)務流程。圖5.5門店接入被掃支付3 免密支付流程本節(jié)以商戶后臺接入模式說明支付流程,請參看以下時序圖:圖5.6被掃支付免密流程時序圖流程詳細說明:收銀員在商戶收銀臺生成支付訂單,向用戶展示支付金額;用戶打開微信客戶端,點擊“我的錢包”,選擇“刷卡”,進入條碼界面;使用掃碼設備讀取用戶手機屏幕上的條碼;掃碼設備將讀取的信息上傳給門店收銀臺;門店收銀臺得到支付信息后,向商戶收銀后臺發(fā)起支付請求。商戶后臺對門店收銀臺的支付請求進行處理,生成簽名后調用【提交被掃支付發(fā)起支付請求。微信支付系統(tǒng)得到商戶側的支付請求之后會對請求進行驗證,驗證通過之后會對請求數(shù)據進行處理,戶,同時把支付結果通知給用戶(以短信、微信消息的形式通知)。商戶收銀后臺對得到的支付結果進行簽名驗證和處理,再將支付結果返回給門店收銀臺。收銀員看到門店收銀臺的支付結果后給用戶發(fā)貨。4 驗密支付流程場景交互與免密模式相同,不同的是在商戶調用【提交被掃支付API】發(fā)起支付請求之后,微信支付后臺前用戶是否已經支付成功。以下時序圖說明驗密支付流程:圖5.7被掃支付驗證密碼流程時序圖由于在商戶收銀后臺向微信支付系統(tǒng)發(fā)起支付請求之前的流程是完全一樣的,所以這里只介紹商戶發(fā)起支付請求之后的邏輯。商戶門店生成訂單后,收銀臺向后臺系統(tǒng)發(fā)起支付請求。后臺調用微信支付【提交被掃支付API】生成支付交易。微信支付系統(tǒng)對商戶請求進行驗證,驗證通過后判斷當前用戶需要輸入密碼。微信支付系統(tǒng)返回狀態(tài),商戶后臺系統(tǒng)將應答結果返回給商戶門店收銀臺。微信支付系統(tǒng)通知用戶微信客戶端輸入密碼。用戶得到輸入密碼提示后,確認支付并輸入密碼。完成密碼輸入,提交微信支付。微信客戶端在用戶完成支付后提示微信支付后臺系統(tǒng)返回的支付結果,而且微信支付系統(tǒng)會通過短信、微信消息給用戶發(fā)送支付結果提醒。商戶收銀臺得到狀態(tài)后,經過商戶后臺系統(tǒng)調用【查詢訂單API】(詳見公共查詢實際支付結果。如果支付結果仍為5秒循環(huán)調用【查詢訂單API】判斷實際支付結果,如果用戶取消支付或累計秒用戶都未支付,商戶收銀臺退出查詢流程后繼續(xù)調用【撤銷訂單銷支付交易。5 用戶遇到支付異常,請按如下說明處理用戶微信端彈出系統(tǒng)錯誤提示框,用戶可在交易列表查看交易情況,如果未找到訂單,需要商戶重新起付易果單示功付戶銀統(tǒng)次詢單I詢際付果;用戶微信端彈出支付失敗提示,例如:余額不足,信用卡失效。需要重新發(fā)起支付;當交易超時或支付交易失敗,商戶收銀系統(tǒng)必須調用【撤銷支付API),撤銷此交由于銀行系統(tǒng)異常、用戶余額不足、不支持用戶卡種等原因使當前支付交易失敗,商戶收銀系統(tǒng)應該把錯誤提示明確展示給收銀員。根據返回的錯誤碼,判斷是否需要撤銷交易,具體詳見返回錯誤碼列表提交被掃支付1 收銀員使用掃碼設備讀取微信用戶刷卡授權碼以后,二維碼或條碼信息傳送至商戶收銀臺,由商戶收銀臺或者商戶后臺調用該接口發(fā)起支付。2 接口地址3 是否需要證書不需要。4 名稱變量名類型必填示例值描述公眾賬號ID是微信分配的公眾賬號ID商戶號是微信支付分配的商戶號子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號是微信支付分配的子商戶號,受理模式下必填子商戶號設備號否號)隨機字符是隨機字符串不長于32位推薦生串成算法詳見第節(jié)簽名是簽名,詳見節(jié)簽名生成算法商品描述body是Q幣購買訂單支付商品或支付單描述,展示給用戶商品詳情否Ipad16G白色傳詳細的商品列表附加數(shù)據否自定義數(shù)據商戶擴展字段,提交支付后在查詢和支付通知中原樣返回商戶訂單是商戶系統(tǒng)內部的訂單號,32個字符號o其他說明見第4.2節(jié)商戶訂單號總金額Int是888訂單總金額,單位為分,只能為整數(shù),詳見第節(jié)支付金額貨幣類型否符合ISO4217標準的三位字母代表詳見第4.2節(jié)貨幣類型終端IP_ip是調用微信支付的機器IP交易起始否訂單生成時間,格式為時間年12月25日9點10分10秒表示為209125910其他詳見第42節(jié)時間規(guī)則交易失效否訂單失效時間,格式為時間年月27日9點10分10秒表示為209127910其他詳見第42節(jié)時間規(guī)則商品標記否商品標記,代金券或立減優(yōu)惠功能的參數(shù),說明詳見第10節(jié)代金券或立減優(yōu)惠授權碼是掃碼支付授權碼,設備讀取用戶微信中的條碼或者二維碼信息舉例如下:5 字段名變量名必填類型示例值描述返回狀態(tài)碼是需要查看來判斷返回信息否簽名失敗返回信息,如非空,為錯誤原因簽名失敗具體某個參數(shù)格式校驗錯誤當為SUCCESS的時候,還會包括以下字段:字段名變量名必填類型示例值描述公眾賬號ID是微信分配的公眾賬號ID商戶號是返回提交的商戶號子商戶公眾賬號ID否子商戶公眾賬號ID子商戶號是子商戶號設備號否5764返回提交的終端設備號,隨機字符串是微信返回的隨機字符串,不長于32位簽名是返回數(shù)據的簽名,驗證簽名算法詳見第4.3.1節(jié)業(yè)務結果錯誤代碼錯誤描述s是否否系統(tǒng)錯誤詳細參見第6節(jié)錯誤列表結果信息描述當和SUCCESS的時,還會包括以下字段:字段名變量名必類型示例值描述填用戶標識否用戶標識用戶子標識否用戶子標識是否關注公是Y用戶是否關注公眾賬號僅在公眾賬號類型支付眾賬號有效,取值范圍:Y或N是否關注子是Y用戶是否關注子公眾賬號僅在公眾賬號類型支公眾賬號ribe付有效,取值范圍:Y或N交易類型是支付類型為付款銀行是銀行類型,采用字符串類型的銀行標識貨幣類型否符合ISO4217標準的三位字母代碼,默認人民4.2節(jié)貨幣類型總金額是Int100訂單總金額,說明詳見第節(jié)支付金額現(xiàn)金支付貨否符合ISO4217標準的三位字母代碼,默認人民幣類型e4.2節(jié)貨幣類型現(xiàn)金支付金額是Int訂單現(xiàn)金支付金額說明詳見第42節(jié)支付金額代金券或立減優(yōu)惠金額微信支付訂否是Int100“代金券或立減優(yōu)惠”金額<=訂單總金額訂付金額微信支付訂單號單號d商戶訂單號是商戶系統(tǒng)的訂單號,與請求一致。商家數(shù)據包否商家數(shù)據包,原樣返回支付完成時是訂單生成時間格式為yddmm如間525年12月25日9點10分10秒表示為節(jié)時間規(guī)則<xml>6 錯誤碼名稱描述原因解決方案接口返回錯誤系統(tǒng)超時請立即調用被掃訂單結果查詢查詢當前訂單狀態(tài)并根據訂單的狀態(tài)決定下一步的操作。參數(shù)錯誤請求參數(shù)未按指引請根據接口返回的詳細信息檢查您的程進行填寫序.訂單已支付訂單號重復請確認該訂單號是否重復支付如果是新單,請使用新訂單號提交商戶無權限商戶沒有開通被掃請開通商戶號權限請聯(lián)系產品或商務申支付權限請二維碼已過期請用戶在微用戶的條碼已經過請收銀員提示用戶請用戶在微信上刷新E信上刷新后再試期條碼,然后請收銀員重新掃碼。直接將錯誤展示給收銀員余額不足用戶的零錢余額不請收銀員提示用戶更換當前支付的卡然足后請收銀員重新掃碼。建議:商戶系統(tǒng)返回給收銀臺的提示為“用戶余額不足.提示用戶換卡支付”不支持卡類型用戶使用卡種不支請用戶重新選擇卡種持當前支付形式建議:商戶系統(tǒng)返回給收銀臺的提示為“該卡不支持當前支付提示用戶換卡支付或綁新卡支付”訂單已關閉該訂單已關閉商戶訂單號異常,請重新下單支付銀行系統(tǒng)異常銀行端超時請立即調用被掃訂單結果查詢查詢當前訂單的不同狀態(tài),決定下一步的操作。用戶支付中需要輸入密碼該筆交易因為業(yè)務等待5秒,然后調用被掃訂單結果查詢規(guī)則要求,需要用戶輸入支付密碼。一步的操作。授權碼參數(shù)錯誤請求參數(shù)未按指引進行填寫每個二維碼僅限使用一次,請刷新再試LID授權碼檢驗錯誤收銀員掃描的不是微信支付的條碼請掃描微信支付被掃條碼/二維碼格式錯誤格式錯誤請檢查參數(shù)格式是否正確訂單已撤銷當前訂單已經被撤銷用戶重新支付請使用方法未使用傳遞參數(shù)請檢查請求參數(shù)是否通過方法提交簽名錯誤參數(shù)簽名結果不正請檢查簽名參數(shù)和方法是否都符合簽名確算法要求缺少參數(shù)缺少必要的請求參數(shù)請檢查參數(shù)是否齊全編碼格式錯誤未使用指定編碼格式請使用編碼格式H支付帳號錯誤暫不支持同一筆訂單更換支付方請確認支付方是否相同不存在參數(shù)中缺少請檢查是否正確T不存在參數(shù)中缺少請檢查是否正確商戶訂單號重復同一筆交易不能多次提交請核實商戶訂單號是否重復提交和不匹配和不匹配請確認和是否匹配7 查詢訂單API第9.2節(jié)查詢訂單】申請退款API第9.4節(jié)申請退款】查詢退款API第9.5節(jié)查詢退款】撤銷支付1 應用場景支付交易返回失敗或支付系統(tǒng)超時,調用該接口撤銷交易。如果此訂單用戶支付失敗,微信支付系統(tǒng)會將此訂單關閉;如果用戶支付成功,微信支付系統(tǒng)會將此訂單資金退還給用戶。注意:7天以內的交易單可調用撤銷,其他正常支付的單如需實現(xiàn)相同功能請調用申請退款付交易后調用【查詢訂單API】,沒有明確的支付結果再調用【撤銷訂單2 /secapi/pay/reverse3 是否需要證書請求需要雙向證書。詳見第節(jié)使用證書4 字段名變量名必填類型示例值描述公眾賬號ID是微信分配的公眾賬號ID商戶號是微信支付分配的商戶號子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號是微信支付分配的子商戶號,受理模式下必填子商戶號微信訂單號否微信的訂單號,優(yōu)先使用商戶訂單號是商戶系統(tǒng)內部的訂單號,隨機字符串是67VS32節(jié)簽名是簽名,詳見節(jié)簽名生成算法提交參數(shù)舉例如下:<xml>i910C3530/g>返回結果字段名變量名必填類型示例值描述返回狀態(tài)碼是返回信息否簽名失敗返回信息,如非空,為錯誤原因簽名失敗參數(shù)格式校驗錯誤以下字段在為SUCCESS的時候有返回字段名變量名必填類型示例值描述公眾賬號ID是88微信分配的公眾賬號ID商戶號是09微信支付分配的商戶號子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號是微信支付分配的子理模式下必填子商戶號隨機字符串是S微信返回的隨機字符串,不長于32位簽名是6簽名,驗證簽名算法詳見第節(jié)業(yè)務結果是S表示撤銷成功此筆訂單不能再發(fā)起支付;若已支付完成,則會發(fā)起退款;其它表示撤銷接口異常,根據判斷是否可再次發(fā)起撤銷操作;是否重調是Y錯誤代碼否詳細參見第6節(jié)錯誤列表錯誤描述s否)系統(tǒng)錯誤結果信息描述返回參數(shù)舉例如下<xml><xml>5 錯誤碼 I名稱描述原因解決方案接口返回錯誤系統(tǒng)超時請嘗試再次調用查詢無效請求參數(shù)未按指引進行填寫參數(shù)錯誤,請重新檢查參數(shù)錯誤請求參數(shù)未按指引進行填寫參數(shù)錯誤,請重新檢查請使用方法未使用傳遞參數(shù)請檢查請求參數(shù)是否通過方法提交簽名錯誤參數(shù)簽名結果不正確請檢查簽名參數(shù)和方法是否都符合簽名算法要求下載對賬單API第9.6節(jié)下載對賬單】上報測速為提高支付服務質量,建議商戶系統(tǒng)將支付接口時延情況通過上報測速共6.掃碼原生支付模式開發(fā)指引場景介紹用戶掃描商戶展示在各種場景的二維碼進行支付。1:商戶根據微信支付的規(guī)則,為不同商品生成不同的二維碼(如圖6.1),展示在各種場景,用于用戶掃描購買。驟戶用一圖2描維后取品付息導戶成(如圖 圖6.1支付二維碼 圖6.2打開微信掃一掃二維碼 圖6.3確認支付頁面步驟(3):用戶確認支付,輸入支付密碼(如圖處理。 圖6.4用戶確認支付,輸入密碼 圖6.5支付成功提示案例介紹目前已上線支付案例,商戶可進行實際體驗。線下:上品折扣線下店。線上:京東、攜程等掃碼原生支付開發(fā)步驟1 開通支付權限在微信公眾平臺設置支付權限,進入欄目微信支付-》開發(fā)配置-》修改,如圖所示。圖原生支付參數(shù)設置欄目入口入改面到眾支付-Nive生付選Ntve生付通權限支回調URL上填寫商戶支付后臺系統(tǒng)的網頁地址。圖原生支付設置權限及支付回調地址2 根據應用場景選擇實現(xiàn)模式掃碼支付可分為兩種模式,商戶根據支付場景選擇相應模式。式戶臺統(tǒng)據信付則接成維碼接帶定數(shù)rouci(定為品標識或訂單號)。用戶掃碼后,微信支付系統(tǒng)將和用戶openid(用戶標識)回調商戶后臺系統(tǒng),商戶后臺系統(tǒng)根據生成支付交易,最后微信支付系統(tǒng)發(fā)起用戶支付流程。模式二:商戶后臺系統(tǒng)調用微信支付【統(tǒng)一下單API】生成預付交易,將接口返回的鏈接生成二維碼,用戶掃碼后輸入密碼完成支付交易。注意:該模式的預付單有效期為2小時,過期后無法支付。模式一模式一開發(fā)前,商戶必須在公眾平臺后臺設置支付回調URL。URL實現(xiàn)的功能:接收用戶掃碼后微信支付系統(tǒng)回調的和設置詳見本章第1 業(yè)務流程時序圖圖6.8:原生支付接口模式一時序圖業(yè)務流程說明:商戶后臺系統(tǒng)根據微信支付規(guī)定格式生成二維碼(規(guī)則見本章第節(jié)),展示給用戶掃碼。用戶打開微信“掃一掃”掃描二維碼,微信客戶端將掃碼內容發(fā)送到微信支付系統(tǒng)。微信支付系統(tǒng)收到客戶端請求,發(fā)起對商戶后臺系統(tǒng)支付回調URL的調用。調用請求將帶用的pnid參要商系調回rep_i一I回交會標識,有效期2小時)才能發(fā)起用戶支付。商戶后臺系統(tǒng)收到微信支付系統(tǒng)的回調請求,根據生成商戶系統(tǒng)的訂單。商戶系統(tǒng)調用微信支付【統(tǒng)一下單API】請求生成交易會話標識。微信支付系統(tǒng)根據商戶系統(tǒng)的請求生成預支付交易,返回交易會話標識商戶后臺系統(tǒng)得到交易會話標識商戶后臺系統(tǒng)將返回給微信支付系統(tǒng)。微信支付系統(tǒng)根據交易會話標識,發(fā)起用戶端授權支付流程。用戶在微信客戶端輸入密碼,確認支付后,微信客戶端提交支付授權。微信支付系統(tǒng)驗證后扣款,完成支付交易。微信支付系統(tǒng)完成支付交易后給微信客戶端返回交易結果,并將交易結果通過短信、微信消息提示用戶。微信客戶端展示支付交易結果頁面。微信支付系統(tǒng)通過發(fā)送異步消息通知商戶后臺系統(tǒng)支付結果。商戶后臺系統(tǒng)需回復接收情況,通知微信后臺系統(tǒng)不再發(fā)送該單的支付通知。未收到支付通知的情況,商戶后臺系統(tǒng)調用【查詢訂單商戶確認訂單已支付后給用戶發(fā)貨。2 生成二維碼規(guī)則二維碼中的內容為鏈接,形式為:weixin://wxpay/bizpayurl?sign=XXXXX&appid=XXXXX&mch_id=XXXXX&product_id=XXXXXX&time_stamp=XXXXXX&nonce_str=XXXXX為商戶需要填寫的內容,商戶將該鏈接生成二維碼,如需要打印發(fā)布二維碼,需要采用此格式。商戶可調用第三方庫生成二維碼圖片。參數(shù)說明如下:表生成二維碼所需參數(shù)列表字段名變量名必填類型示例值描述公眾賬號ID是微信分配的公眾賬號ID商戶號是微信支付分配的商戶號時間戳是系統(tǒng)當前時間定義規(guī)則見第42節(jié)時間戳隨機字符串是隨機字符串,不長于32位。推薦生成算法詳見第節(jié)商品ID是商戶定義的商品id或者訂單號簽名是簽名,詳見節(jié)簽名生成算法舉例:__a499ig58155CD3 回調商戶支付商戶提供的支付回調節(jié))需要實現(xiàn)以下功能:接收用戶掃碼后微信支付系統(tǒng)發(fā)送的數(shù)據,根據接收的數(shù)據生成支付訂單,調用【統(tǒng)一下單表輸入參數(shù)說明字段名變量名必填類型示例值描述公眾賬號ID是微信分配的公眾賬號ID用戶標識是用戶在商戶下的唯一標識商戶號是微信支付分配的商戶號是否關注公眾號是Y注隨機字符串是隨機字符串不長于32位推薦生成算法詳見第節(jié)商品ID是商戶定義的商品id或訂單號簽名是簽名,詳見節(jié)簽名生成算法表輸出參數(shù)說明字段名變量名必填類型示例值說明返回狀態(tài)碼是返回信息否簽名失敗返回信息,如非空,為錯誤原因簽名失敗參數(shù)格式校驗錯誤公眾賬號ID是微信分配的公眾賬號ID商戶號是微信支付分配的商戶號隨機字符串是微信返回的隨機字符串,不長于32位預支付ID是調用統(tǒng)一下單接口生成的預支付ID業(yè)務結果是錯誤描述否當reslt_oe為FIL時商戶展示給用戶的錯誤提示。簽名是簽名,驗證簽名算法詳見第4.3.1節(jié)模式二URL戶臺統(tǒng)調微支的單口信臺統(tǒng)回接數(shù)ceurl戶臺統(tǒng)將cd_url生二碼片戶用客戶端掃碼后發(fā)起支付。注意:code_url有效期為2小時,過期后掃碼不能再發(fā)起支付。1 業(yè)務流程時序圖圖原生支付模式二時序圖業(yè)務流程說明:商戶后臺系統(tǒng)根據用戶選購的商品生成訂單。用戶確認支付后調用微信支付【統(tǒng)一下單API】生成預支付交易;微信支付系統(tǒng)收到請求后生成預支付交易單,并返回交易會話的二維碼鏈接code_url。商戶后臺系統(tǒng)根據返回的code_url生成二維碼。用戶打開微信“掃一掃”掃描二維碼,微信客戶端將掃碼內容發(fā)送到微信支付系統(tǒng)。微信支付系統(tǒng)收到客戶端請求,驗證鏈接有效性后發(fā)起用戶支付,要求用戶授權。用戶在微信客戶端輸入密碼,確認支付后,微信客戶端提交授權。微信支付系統(tǒng)根據用戶授權完成支付交易。微信支付系統(tǒng)完成支付交易后給微信客戶端返回交易結果,并將交易結果通過短信、微信消息提示用戶。微信客戶端展示支付交易結果頁面。微信支付系統(tǒng)通過發(fā)送異步消息通知商戶后臺系統(tǒng)支付結果。商戶后臺系統(tǒng)需回復接收情況,通知微信后臺系統(tǒng)不再發(fā)送該單的支付通知。未收到支付通知的情況,商戶后臺系統(tǒng)調用【查詢訂單商戶確認訂單已支付后給用戶發(fā)貨。2 生成二維碼規(guī)則對應鏈接格式:weixin://wxpay/bizpayurl?sr=XXXXX。請商戶調用第三方庫將生成二維碼圖片。該模式鏈接較短,生成的二維碼打印到結賬小票上的識別率較高。例如,將生成二維碼見圖6.10。圖原生支付“模式二”二維碼示例統(tǒng)一下單注意交易類型(trade_type)填寫:NATIVE。API第9.1節(jié)統(tǒng)一下單】查詢訂單第節(jié)查詢訂單】關閉訂單第節(jié)關閉訂單】申請退款第節(jié)申請退款】查詢退款第節(jié)查詢退款】下載對賬單第9.6節(jié)下載對賬單】上報測速為提高支付服務質量,建議商戶系統(tǒng)將支付接口時延情況通過上報測速共二維碼相關知識二維碼背景知識介紹:7.微信內網頁支付場景介紹商戶已有H5商城網站,用戶通過消息或掃描二維碼在微信內打開網頁時,可以調用微信支付完成下單購買的流程。步驟(1):如圖7.1,商戶下發(fā)圖文消息或者通過自定義菜單吸引用戶點擊進入商戶網頁。步驟(2):如圖7.2,進入商戶網頁,用戶選擇購買,完成選購流程。 圖7.1商戶自定義消息界面 圖7.2商戶網頁下單步驟(3):如圖7.3,調起微信支付控件,用戶開始輸入支付密碼。步驟(4):如圖7.4,密碼驗證通過,支付成功。商戶后臺得到支付成功的通知。 圖7.3用戶確認支付,輸入密碼 圖7.4用戶支付成功提示步驟(5):如圖7.5,返回商戶頁面,顯示購買成功。該頁面由商戶自定義。步驟(6):如圖7.6,公眾號下發(fā)消息,提示發(fā)貨成功。該步驟可選。 圖7.5返回商戶頁面提示 圖7.6用戶收到發(fā)貨微信通知注意:商戶也可以把商品網頁的鏈接生成二維碼,用戶掃一掃打開后即可完成購買支付。交互細節(jié):以下是支付場景的交互細節(jié),請認真閱讀,設計商戶頁面的邏輯:1戶開戶頁購品起付網通過JvScrpt用erndWReqest口,發(fā)起微信支付請求,用戶進入支付流程。(2)用戶成功支付點擊完成按鈕后,商戶的前端會收到JavaScript的返回值。商戶可直接跳轉到支付成功的靜態(tài)頁面進行展示。(3)商戶后臺收到來自微信開放平臺的支付成功回調通知,標志該筆訂單支付成功。該只在收到微信后臺的支付成功回調通知后,才做真正的支付成功的處理。案例介紹目前已上線支付案例,商戶可進行實際體驗。線下:新版友寶售賣機等。線上:京東、易迅公眾號內下單支付等微信內網頁支付開發(fā)步驟1 設置測試目錄在微信公眾平臺設置,欄目見圖7.7。支付測試狀態(tài)下,設置測試目錄,測試人的微信號添加到白名單,發(fā)起支付的頁面目錄必須與設置的精確匹配。并將支付鏈接發(fā)到對應的公眾號會話窗口中才能正常發(fā)起支付測試。注意正式目錄一定不能與測試目錄設置成一樣,否則支付會出錯。圖微信內網頁支付設置欄目入口2 設置正式支付目錄據中目序入改目選JI頁付通權配好付權錄目必須是發(fā)起支付的頁面的精確目錄,子目錄下無法正常調用支付。具體界面如圖所示:圖微信網頁內支付接口授權目錄設置業(yè)務流程時序圖圖微信內網頁支付時序圖商戶系統(tǒng)和微信支付系統(tǒng)主要交互:調用統(tǒng)一下單接口請求訂單,api參見公共api【統(tǒng)一下單】接收支付通知,api參見公共查詢支付結果,api參見公共獲取微信版本號于信0本才入信付塊版用調微支功將效此議戶過s來確定用戶當前的版本號后再調用支付接口。以版本為例,可以通過可獲取如下微信版本示例信息:"Mozilla/5.0(iphone;CPUiphoneOSOS中.0用安的信本號戶以析上HTP頭取微版號否于者于0。顯示微信安全支付標題對于商戶具有支付權限且需要調用微信支付的頁面,為了讓用戶增加購買信心,確認交易環(huán)境安全,微信強烈建議商戶使用“微信安全支付”標題。安全支付標題的如下圖。圖微信安全支付標題顯示支付安全標題,需將原始鏈接添加上"showwxpaytitle=1"的尾串。通過這種方式,商戶的頁面將出現(xiàn)微信安全支付的標識。例如,原始URL為:,顯示安全支付標題的URL當用戶在微信里打開不會直接出現(xiàn)微信安全支付的標題,而打開后將出現(xiàn)微信安全支付標題。網頁端調起支付在微信瀏覽器里面打開H5網頁中執(zhí)行JS調起支付。接口輸入輸出數(shù)據格式為JSON。內置對象在其他瀏覽器中無效;列表中參數(shù)名稱區(qū)分大小。參數(shù)以及返回值定義見圖7.1,返回列表值說明見圖7.2。表網頁端接口參數(shù)列表字段名變量名必填類型示例值描述公眾號id是商戶注冊具有支付權限的公眾號成功后即可獲得時間戳是當前的時間規(guī)則詳見其他詳見第4.2節(jié)時間戳規(guī)則隨機字符串是32詳見第節(jié)訂單詳情擴展字符串是統(tǒng)一下單接口返回的prep_id參數(shù)值提簽名方式是簽名算法,暫支持簽名是簽名,詳見節(jié)簽名生成算法表網頁內支付接口返回結果值說明字段名返回值支付成功支付過程中用戶取消支付失敗JSI返結果e_rndcpa_reuesok在戶功成付返于端互雜,可以統(tǒng)一處理為用戶遇到錯誤或者主動放棄,不必細化區(qū)分。{:::::i.e_g==t_bncp_eqtk")} //,.e_g付}}if==if}}統(tǒng)一下單注意交易類型(trade_type)填寫:JSAPI。API第9.1節(jié)統(tǒng)一下單】查詢訂單第節(jié)查詢訂單】關閉訂單第節(jié)關閉訂單】申請退款第節(jié)申請退款】查詢退款第節(jié)查詢退款】下載對賬單第9.6節(jié)下載對賬單】8.APP支付模式場景介紹適用于商戶在移動端中集成微信支付功能。調用微信提供的調用微信支付模塊,商戶會跳轉到微信中完成支付,支付完后跳回到商戶內,最后展示支付結果。目前微信支付支持手機系統(tǒng)有:IOS(蘋果)、Android(安卓)和交互細節(jié)如下:驟用進商戶P選商下、認買進支環(huán)。戶務臺成付單簽名后將數(shù)據傳輸?shù)蕉?。以微信提供的為例,見圖8.1。2:用戶點擊后發(fā)起支付操作,進入到微信界面,調起微信支付,出現(xiàn)確認支付界面,見圖3:用戶確認收款方和金額,點擊立即支付后出現(xiàn)輸入密碼界面,可選擇零錢或銀行卡支付見圖8.3。 圖8.1商戶APP界面實例 圖8.2跳轉到微信支付 圖8.3用戶確認支付第四步:輸入正確密碼后,支付完成,用戶端微信出現(xiàn)支付詳情頁面。見圖8.4。第五步:回跳到商戶中,商戶根據支付結果個性化展示訂單處理結果。見圖 圖8.4支付成功提示頁面 圖8.5返回到商戶APP提示案例介紹目前已上線支付案例,如京東、易迅手機業(yè)務流程以下是交互時序圖,統(tǒng)一下單API、接受支付通知和查詢等都涉及簽名過程,調用都必須在商戶服務器端完成。如圖所示。圖支付時序圖商戶系統(tǒng)和微信支付系統(tǒng)主要交互說明:1:用戶在商戶中選擇商品,提交訂單,選擇微信支付。2:商戶后臺系統(tǒng)收到用戶支付單,調用微信支付統(tǒng)一下單接口。參見公共api【統(tǒng)一下單API】。3:統(tǒng)一下單接口返回正常的prepay_id,再按簽名規(guī)范重新生成簽名后,將數(shù)據傳輸給APP。參與簽名的字段名為的值格式為prepay_id=wx20141009175351724b348a5000877515574:商戶調起微信支付。api參見本章節(jié)【app端開發(fā)說明】5:商戶接收支付通知。api參見公共api【通用通知6:商戶查詢支付結果。,api參見公共api【查詢訂單api】詳細說明1.請詳細參考開放平臺API手冊:安卓:WP:待提供端調起支付接口端調起支付參數(shù)列表字段,具體調用根據提供的說明。字段名變量名必填類型示例值描述公眾賬號ID是微信分配的公眾賬號ID商戶號是微信支付分配的商戶號交易會話標是調用微信支付統(tǒng)一下單會返回的交易會話識標識隨機字符串是32詳見第節(jié)訂單擴展字是填寫訂單詳情字段段商品描述p是時間戳端開發(fā)步驟說明1 開發(fā)要點說明以下項目開發(fā)環(huán)境以Xcode10.0,運行環(huán)境為為例,說明其開發(fā)中需要的操作。項目設置商戶在微信開放平臺申請開發(fā)應用后,微信開放平臺會生成的唯一標識中打開項目,設置項目屬性中的URLSchemes為您的標紅位置所示。圖工程中引入微信庫和頭文件,調用前,需要先向微信注冊您的APPID,代碼如下:戶務生支訂調統(tǒng)下單I(見第1節(jié))成付單取到rea_id將數(shù)再次簽名傳輸給發(fā)起支付。以下是調起微信支付的關鍵代碼:===支付結果回調照微信包路徑中實現(xiàn)WXPayEntryActivity類(包名或類名不一致會造成無法回調),類中實現(xiàn)會返回到商戶并回調函數(shù),開發(fā)者需要在該函數(shù)中接收通知,判斷返回錯誤碼,如果支付成功則去后臺查詢支付結果再展示用戶實返回的結果為準。代碼示例如下:ifPa-{{={API}}}回調中名稱描述解決方案0成功展示成功頁面錯誤可能的原因:簽名錯誤、未注冊不正確、注冊的與設置的不匹配、其他異常等。-2用戶取消無需處理。發(fā)生場景:用戶不支付了,點擊取消,返回2 開發(fā)要點說明商戶在微信開放平臺申請開發(fā)應用后,微信開放平臺會生成的唯一標識APPID。由于需要保證支付安全,需要在開放平臺綁定商戶應用包名和應用簽名,設置好后才能正常發(fā)起支付。設置界面在【開放平臺】中的欄目【管理中心/修改應用/修改開發(fā)信息】里面,如圖紅框內所示。圖應用包名:是在項目配置文件AndroidManifest.xml中聲明的值,例如中的md5的手機上安裝簽名工具后,運行可生成應用簽名串,如圖所示,綠色串即應用簽名。簽名工具下載地址:圖工程中引入微信JAR包,調用前,需要先向微信注冊您的APPID,代碼如下:調用前,需要先向微信注冊您的APP,代碼如下:=注冊到微信商戶服務器生成支付訂單,先調用統(tǒng)一下單API(詳見第7節(jié))生成預付單,獲取到后將參數(shù)再次簽名傳輸給發(fā)起支付。以下是調起微信支付的關鍵代碼:====支付結果回調參照微信類中實現(xiàn)onResp函數(shù),支付完成后,微信會返回到商戶并回調onResp函數(shù),開發(fā)者需要在該函數(shù)中接收通知,判斷返回錯誤碼,如果支付成功則去后臺查詢支付結果再展示用戶實際支付結果。注意一定不能以客戶端返回作為用戶支付的結果,應以服務器端的接收的支付通知或查詢返回的結果為準。代碼示例如下:{if{="+=}}回調中名稱描述解決方案0成功展示成功頁面-1錯誤可能的原因:簽名錯誤、未注冊不正確、注冊的與設置的不匹配、其他異常等。-2用戶取消無需處理。發(fā)生場景:用戶不支付了,點擊取消,返回統(tǒng)一下單注意交易類型(trade_type)填寫:APP。API第9.1節(jié)統(tǒng)一下單】查詢訂單第節(jié)查詢訂單】關閉訂單第節(jié)關閉訂單】申請退款第節(jié)申請退款】查詢退款第節(jié)查詢退款】下載對賬單第9.6節(jié)下載對賬單】9.公共API接轉換。以下對接口使用進行詳細說明。統(tǒng)一下單1 除被掃支付場景以外,商戶系統(tǒng)先調用該接口在微信支付服務后臺生成預支付交易單,返回正確的預支付交易回話標識后再按掃碼、JSAPI、APP等不同場景生成交易串調起支付。2 URL3 是否需要證書不需要4 字段名變量名必填類型示例值描述公眾賬號ID是微信分配的公眾賬號ID商戶號是微信支付分配的商戶號子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號是微信支付分配的子商戶號,受理模式下必填子商戶號設備號否微信支付分配的終端設備號,商戶自定義隨機字符串是32詳見第節(jié)簽名是簽名,詳見節(jié)簽名生成算法商品描述是Ipad16G白色商品或支付單簡要描述商品詳情否Ipad16G白色商品名稱明細列表附加數(shù)據否說明附加數(shù)據,在查詢和支付通知中原樣返回,該字段主要用于商戶攜帶訂單的自定義數(shù)據商戶訂單號是商戶系統(tǒng)內部的訂單號,32個字符內可包o含字母,其他說明見第4.2節(jié)商戶訂單號貨幣類型否符合ISO427標準的三位字母代碼默認4.2節(jié)貨幣類型總金額是Int888訂單總金額,只能為整數(shù),詳見第節(jié)支付金額終端IP_ip是和網頁支付提交用戶端支付填調用微信支付的機器交易起始時否訂單生成時間,格式為間年12月日9點10分10秒表示為2001250901其他詳見第4.2節(jié)時間規(guī)則交易結束時否訂單失效時間,格式為間2009年12月日9點10分10秒表示為2001270901其他詳見第4.2節(jié)時間規(guī)則商品標記否商品標記,代金券或立減優(yōu)惠功能的參數(shù),說明詳見第10節(jié)代金券或立減優(yōu)惠通知地址是接收微信支付異步通知回調地址交易類型是說明見第4.2節(jié)參數(shù)規(guī)定商品ID否8058id為二維碼中包含的商品I商戶自行定義。用戶標識28)戶在商戶apid下的唯一標識下單前需要調用【網頁授權獲取用戶信息】接口獲取到用戶的用戶子標識否時,此參數(shù)必下的唯一標識。接口獲取到用戶的舉例如下:<xml><xml>5 字段名變量名必填類型示例值描述返回狀態(tài)碼是功需要查看來判斷返回信息否簽名失敗返回信息,如非空,為錯誤原因簽名失敗參數(shù)格式校驗錯誤以下字段在為SUCCESS的時候有返回字段名變量名必填類型示例值描述公眾賬號ID是調用接口提交的公眾賬號ID商戶號是調用接口提交的商戶號子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號是微信支付分配理模式下必填子商戶號設備號否764調用接口提交的終端設備號,隨機字符串是微信返回的隨機字符串簽名是微信返回的簽名,驗證簽名算法詳見第節(jié)業(yè)務結果是錯誤代碼否詳細參見第6節(jié)錯誤列表錯誤代碼描述s否系統(tǒng)錯誤錯誤返回的信息描述以下字段在和SUCCESS的時候有返回字段名變量名必填類型示例值描述交易類型是調用接口提交的交易類型取值如下JI,4.2節(jié)參數(shù)規(guī)定預支付交易會話標識是微信生成的預支付回話標識用于后續(xù)接口調用中使用,該值有效期為2小時二維碼鏈接否trad_tpe為AIVE是有返回可將該參數(shù)值生成二維碼展示出來進行掃碼支付舉例如下:<xml><xml>6 錯誤碼名稱描述原因解決方案商戶無此接口權限商戶未開通此接口權限請商戶前往申請此接口權限余額不足用戶帳號余額不足用戶帳號余額不足,請用戶充值或更換支付卡后再支付商戶訂單已支付商戶訂單已支付,無需重復操作商戶訂單已支付,無需更多操作訂單已關閉當前訂單已關閉,無法支付當前訂單已關閉,請重新下單系統(tǒng)錯誤系統(tǒng)超時系統(tǒng)異常,請用相同參數(shù)重新調用不存在參數(shù)中缺少請檢查是否正確IST不存在參數(shù)中缺少請檢查是否正確和不匹配和不匹配請確認和是否匹配缺少參數(shù)缺少必要的請求參數(shù)請檢查參數(shù)是否齊全商戶訂單號重復同一筆交易不能多次提交請核實商戶訂單號是否重復提交簽名錯誤參數(shù)簽名結果不正確請檢查簽名參數(shù)和方法是否都符合簽名算法要求格式錯誤格式錯誤請檢查參數(shù)格式是否正確請使用方法未使用傳遞參數(shù)請檢查請求參數(shù)是否通過方法提交數(shù)據為空數(shù)據不能為空請檢查數(shù)據是否為空編碼格式錯誤未使用指定編碼格式請使用編碼格式7 工具查詢訂單1 該接口提供所有微信支付訂單的查詢,商戶可以通過該接口主動查詢訂單狀態(tài),完成下一步的業(yè)務邏輯。需要調用查詢接口的情況:當商戶后臺、網絡、服務器等出現(xiàn)異常,商戶系統(tǒng)最終未接收到支付通知;調用支付接口后,返回系統(tǒng)錯誤或未知交易狀態(tài)情況;調用被掃支付API,返回調用關單或撤銷接口之前,需確認支付狀態(tài);2 3 是否需要證書不需要4 字段名變量名必填類型示例值描述公眾賬號ID是微信分配的公眾賬號ID商戶號是微信支付分配的商戶號子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號是微信支付分配的子商戶號,受理模式下必填子商戶號微信訂單號d否5764微信的訂單號,優(yōu)先使用商戶訂單號否商戶系統(tǒng)內部的訂單號,當沒提供時需要傳這個。隨機字符串是隨機字符串,不長于32位。推薦生成算法詳見第節(jié)簽名是67VS簽名,詳見節(jié)簽名生成算法舉例如下:<xml>5 <xml>字段名變量名必填類型示例值描述返回狀態(tài)碼是查看來判斷返回信息否簽名失敗返回信息,如非空,為錯誤原因簽名失敗參數(shù)格式校驗錯誤以下字段在為SUCCESS的時候有返回字段名變量名必類型示例值描述填公眾賬號ID是微信分配的公眾賬號ID商戶號是微信支付分配的商戶號子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號是微信支付分配的子商戶號,受理模式下必填子商戶號隨機字符串是67VS隨機字符串,不長于32位簽名是簽名,驗證簽名算法詳見第4.3.1節(jié)業(yè)務結果是錯誤代碼否詳細參見第6節(jié)錯誤列表錯誤代碼描述s否系統(tǒng)錯誤結果信息描述以下字段在和SUCCESS的時候有返回字段名變量名必填類型示例值描述設備號否微信支付分配的終端設備號,用戶標識否tdoo用戶標識用戶子標識否用戶子標識是否關注公眾賬號是Y用戶是否關注公眾賬號,僅在公眾賬號類型支付有效,取值范圍:Y或N是否關注子是Y用戶是否關注子公眾賬號,僅在公眾賬號類型支付公眾賬號be有效,取值范圍:Y或N交易類型是4.2節(jié)參數(shù)規(guī)定交易狀態(tài)是付款銀行是銀行類型,采用字符串類型的銀行標識總金額是Int100訂單總金額,單位為分貨幣種類否貨幣類型,符合ISO4217標準的三位字母代碼,4.2節(jié)貨幣類型現(xiàn)金支付金是Int100現(xiàn)金支付金額訂單現(xiàn)金支付金額,詳見第4.2節(jié)支額付金額現(xiàn)金支付貨否貨幣類型,符合ISO4217標準的三位字母代碼,幣類型4.2節(jié)貨幣類型代金券或否Int“代金券或立減優(yōu)惠”金額<=訂單總金額,訂單立減優(yōu)惠總金額-“代金券或立減優(yōu)惠”金額=現(xiàn)金支付金金額額,詳見第4.2節(jié)支付金額代金券或立減優(yōu)惠使用數(shù)量否Int1代金券或立減優(yōu)惠使用數(shù)量代金券或否100代金券或立減優(yōu)惠批次ID,$n為下標,從1開始立減優(yōu)惠d_$n編號批次ID代金券或立減優(yōu)惠ID否代金券或立減優(yōu)惠$n為下標,從1開始編號單個代金否Int100單個代金券或立減優(yōu)惠支付金額,$n為下標從1券或立減開始編號優(yōu)惠支付金額微信支付訂是微信支付訂單號單號商戶訂單號是商戶系統(tǒng)的訂單號,與請求一致。商家數(shù)據包否商家數(shù)據包,原樣返回支付完成時是訂單支付時間,格式為間525年12月25日9點10分10秒表示為節(jié)時間規(guī)則<xml><xml>6 錯誤碼名稱描述原因解決方案此交易訂單號不存在查詢系統(tǒng)中不存在此交易訂單號該只能查提交支付交易返回成功的訂單請商戶檢查需要查詢的訂單號是否正確系統(tǒng)錯誤后臺系統(tǒng)返回錯誤系統(tǒng)異常,請再調用發(fā)起查詢關閉訂單1 以下情況需要調用關單接口:商戶訂單支付失敗需要生成新單號重新發(fā)起支付,要對原訂單號調用關單,避免重復支付;系統(tǒng)下單后,用戶支付超時,系統(tǒng)退出不再受理,避免用戶繼續(xù),請調用關單接口。2 3 是否需要證書不需要。4 字段名變量名必填類型示例值描述公眾賬號ID是微信分配的公眾賬號ID商戶號是9微信支付分配的商戶號子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號是微信支付分配的子商戶號受理模式子商戶號下必填商戶訂單號o否8商戶系統(tǒng)內部的訂單號隨機字符串是商戶系統(tǒng)內部的訂單號,32個字符內、可包含字母,其他說明見第4.2節(jié)商戶訂單號簽名是簽名,詳見節(jié)簽名生成算法示例代碼:i547759/g><xml>5 <xml>字段名變量名必填類型示例值描述返回狀態(tài)碼是返回信息否簽名失敗返回信息,如非空,為錯誤原因簽名失敗參數(shù)格式校驗錯誤以下字段在為SUCCESS的時候有返回字段名變量名必填類型示例值描述公眾賬號ID是微信分配的公眾賬號ID商戶號是微信支付分配的商戶號9子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號d是微信支付分配的子商戶號,受理模式下必填子商戶號隨機字符串是隨機字符串,不長于32位簽名是簽名,驗證簽名算法詳見第4.3.1節(jié)錯誤代碼否詳細參見第6節(jié)錯誤列表錯誤代碼描述es否系統(tǒng)錯誤結果信息描述<xml><xml>6 錯誤碼名稱描述原因解決方案訂單已支付訂單已支付,不能發(fā)起關單訂單已支付不能發(fā)起關單請當作已支付的正常交易系統(tǒng)錯誤系統(tǒng)錯誤系統(tǒng)異常,請重新調用該訂單不存在訂單系統(tǒng)不存在此訂單不需要關單當作未提交的支付的訂單訂單已關閉訂單已關閉,無法重復關閉訂單已關閉,無需繼續(xù)調用簽名錯誤參數(shù)簽名結果不正確請檢查簽名參數(shù)和方法是否都符合簽名算法要求請使用方法未使用傳遞參數(shù)請檢查請求參數(shù)是否通過方法提交XML格式錯誤格式錯誤請檢查參數(shù)格式是否正確申請退款1 應用場景當交易發(fā)生之后一段時間內,由于買家或者賣家的原因需要退款時,賣家可以通過退款接口將支付款退還給買家,微信支付將在收到退款請求并且驗證成功之后,按照退款規(guī)則將支付款按原路退到買家?guī)ぬ柹稀W⒁猓?.交易時間超過半年的訂單無法提交退款;2.微信支付退款支持單筆交易分多次退款,多次退款需要提交原支付訂單的商戶訂單號和設置不同的退款單號。一筆退款失敗后重新提交,要采用原來的退款單號。總退款金額不能超過用戶實際支付金額。接口提交成功后,還需要在微信商戶后臺由商戶管理員審核退款,如下圖所示欄目:2 接口地址接口鏈接:/secapi/pay/refund3 是否需要證書請求需要雙向證書。4 字段名變量名必填類型示例值描述公眾賬號ID是微信分配的公眾賬號ID商戶號是微信支付分配的商戶號子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號d是微信支付分配的子商戶號,受理模式下必填子商戶號設備號否5764微信支付分配的終端設備號,與下單一致隨機字符串是S隨機字符串,不長于32位。推薦生成算法詳見第節(jié)簽名是6簽名,詳見節(jié)簽名生成算法微信訂單號_id否微信訂單號商戶訂單號no否商戶系統(tǒng)內部的訂單號,二選一,如果同時存在優(yōu)商戶退款單號_no是商戶系統(tǒng)內部的退款單號,商戶系統(tǒng)內部唯一,同一退款單號多次請求只退一筆總金額是Int100訂單總金額,單位為分,只能為整數(shù),詳見第節(jié)支付金額退款金額是Int100退款總金額,訂單總金額,單位為分,只能為整數(shù),詳見第節(jié)支付金額貨幣種類否ISO標準第4.2節(jié)貨幣類型操作員是操作員帳號,默認為商戶號舉例如下:<xml><xml>5 字段名變量名必填類型示例值描述返回狀態(tài)碼是返回信息否簽名失敗返回信息,如非空,為錯誤原因簽名失敗參數(shù)格式校驗錯誤以下字段在為SUCCESS的時候有返回字段名變量名必填類型示例值描述業(yè)務結果e是退款申請接收成功,結果通過退款查詢接口查詢提交業(yè)務失敗錯誤代碼否列表詳見第6節(jié)錯誤代碼描述es否系統(tǒng)超時結果信息描述公眾賬號ID是微信分配的公眾賬號ID商戶號是微信支付分配的商戶號子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號d是微信支付分配的子商戶號,受理模式下必填子商戶號設備號否微信支付分配的終端設備號,與下單一致隨機字符串是隨機字符串,不長于32位簽名是簽名,驗證簽名算法詳見第節(jié)微信訂單號_id是微信訂單號商戶訂單號no是商戶系統(tǒng)內部的訂單號商戶退款單號_no是商戶退款單號微信退款單號是微信退款單號退款金額是Int100退款總金額,單位為分,可以做部分退款訂單總金額是Int100訂單總金額,單位為分,只能為整數(shù),詳見第節(jié)支付金額訂單金額貨幣種類否訂單金額貨幣類型,符合ISO標準的三詳見第4.2節(jié)貨幣類型現(xiàn)金支付金額是Int100現(xiàn)金支付金額,單位為分,只能為整數(shù),詳見第節(jié)支付金額貨幣種類否貨幣類型,符合ISO標準的三位字母代碼默認人民幣Y其他值列表詳見第4.2節(jié)貨幣類型現(xiàn)金退款金否Int100現(xiàn)金退款金額,單位為分,只能為整數(shù),詳見額第節(jié)支付金額代金券或立減優(yōu)惠退款金額否Int100“代金券或立減優(yōu)惠”退款金額=訂單金額-現(xiàn)金退款金額注意立減優(yōu)惠金額不會退回代金券或立減優(yōu)惠使用數(shù)量unt否Int1代金券或立減優(yōu)惠使用數(shù)量代金券或立減優(yōu)惠批次ID否100批次ID,$n為下標,從1開始編號代金券或立減優(yōu)惠ID_$n否代金券或立減優(yōu)惠$n1開始編號單個代金券或立減優(yōu)惠支付金額否Int100單個代金券或立減優(yōu)惠支付金額,$n為下標,從1開始編號舉例如下:<xml><xml>6 錯誤碼名稱描述原因解決方案接口返回錯誤系統(tǒng)超時請用相同參數(shù)再次調用無效請求參數(shù)未按指引進行填寫請求參數(shù)錯誤檢查原交易號是否存在或發(fā)起支付交易接口返回失敗參數(shù)錯誤請求參數(shù)未按指引進行填寫請求參數(shù)錯誤請重新檢查再調用退款申請不存在參數(shù)中缺少請檢查是否正確不存在參數(shù)中缺少請檢查是否正確和不匹配和不匹配請確認和是否匹配請使用方法未使用傳遞參數(shù)請檢查請求參數(shù)是否通過方法提交簽名錯誤參數(shù)簽名結果不正確請檢查簽名參數(shù)和方法是否都符合簽名算法要求格式錯誤格式錯誤請檢查參數(shù)格式是否正確查詢退款1 提交退款申請后,通過調用該接口查詢退款狀態(tài)。退款有一定延時,用零錢支付的退款分鐘內到賬,銀行卡支付的退款3個工作日后重新查詢退款狀態(tài)。2 接口鏈接:/pay/refundquery3 是否需要證書不需要。4 字段名變量名必填類型示例值描述公眾賬號ID是微信分配的公眾賬號ID商戶號是微信支付分配的商戶號子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號是微信支付分配子商戶號的子商戶號,受理模式下必填設備號否5764微信支付分配的終端設備號隨機字符串是67VS隨機字符串,不長于32位。推薦生成算法詳見第4.3.2節(jié)簽名是簽名,詳見節(jié)簽名生成算法微信訂單號否微信訂單號商戶訂單號否商戶系統(tǒng)內部的訂單號商戶退款單號否商戶退款單號微信退款單號否微信退款單號四個參數(shù)必填一個,如果同事存在優(yōu)先級為:舉例如下:<xml><xml>5 返回數(shù)據字段名變量名必填類型示例值描述返回狀態(tài)碼是返回信息否簽名失敗返回信息,如非空,為錯誤原因簽名失敗參數(shù)格式校驗錯誤以下字段在為SUCCESS的時候有返回字段名變量名必填類型示例值描述業(yè)務結果是S退款申請接收成功結果通過退款查詢接口查詢錯誤碼是錯誤碼詳見第9.6節(jié)錯誤描述是系統(tǒng)錯誤結果信息描述公眾賬號ID否微信分配的公眾賬號ID商戶號是微信支付分配的商戶號子商戶公眾賬號ID否微信分配的子商戶公眾賬號ID子商戶公眾賬號ID子商戶號是微信支付分配的子商戶號,受理模式下必填子商戶號設備號是微信支付分配的終端設備號,與下單一致隨機字符串是隨機字符串,不長于32位67VS簽名是簽名,驗證簽名算法詳見第節(jié)微信訂單號是微信訂單號商戶訂單號是商戶系統(tǒng)內部的訂單號訂單總金額是100節(jié)支付金額訂單金額貨幣種類否訂單金額貨幣類型,符合ISO4217標準的三位字母4.2節(jié)貨幣類型現(xiàn)金支付金額是100現(xiàn)金支付金額,單位為分,只能為整數(shù),詳見第節(jié)支付金額貨幣種類e否貨幣類型,符合ISO4217標準的三位字母代碼,默認人民幣其他值列表詳見第4.2節(jié)貨幣類型退款金額

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論