為了在保證支付安全的前提下,帶給商戶簡(jiǎn)單、一致且易用的開發(fā)體驗(yàn),我們推出了全新的微信支付APIv3接口。該版本API的具體規(guī)則請(qǐng)參考“APIv3接口規(guī)則”
為了幫助開發(fā)者調(diào)用開放接口,我們提供了Java、PHP、GO語(yǔ)言版本的開發(fā)庫(kù),封裝了簽名生成、簽名驗(yàn)證、敏感信息加/解密、媒體文件上傳等基礎(chǔ)功能
機(jī)構(gòu)提交子商戶進(jìn)件申請(qǐng)后,微信支付將對(duì)該子商戶的資料進(jìn)行系統(tǒng)審核,并返回進(jìn)件是否成功或需要進(jìn)一步人工審核的狀態(tài),所以機(jī)構(gòu)需要關(guān)注接口返回結(jié)果:
{
"sub_mchid": "20000100",
"verification_status": "Approved"
}
注意:此時(shí)該子商戶沒有支付權(quán)限,無法發(fā)起交易。需等待該子商戶審核通過后,方可發(fā)起交易。機(jī)構(gòu)可通過子商戶查詢接口,查詢子商戶的狀態(tài)。
機(jī)構(gòu)提交子商戶進(jìn)件申請(qǐng)后,可通過查詢接口,查詢子商戶的狀態(tài):
OPERATING:正常;子商戶已通過審核,入駐流程結(jié)束。其支付權(quán)限正常,可發(fā)起交易;
DEACTIVATED:已停用;該子商戶在入駐審核通過后被機(jī)構(gòu)自主停用,無支付權(quán)限,不能發(fā)起交易;
CLOSED:已關(guān)閉;該子商戶在入駐審核通過后,被微信支付關(guān)閉支付權(quán)限,不能發(fā)起交易;
INCOMPLETE_APPLICATION:未完成入駐;子商戶入駐申請(qǐng)未完成,無支付權(quán)限,不能發(fā)起交易。請(qǐng)于application_status字段查看入駐申請(qǐng)狀態(tài);
PENDING:待處理;該子商戶在入駐審核通過后,其商戶資料未通過日常復(fù)核,需要機(jī)構(gòu)登錄微信支付商戶平臺(tái)查看和處理。子商戶權(quán)限正常,可發(fā)起交易。
若查詢到子商戶狀態(tài)為INCOMPLETE_APPLICATION,需進(jìn)一步于application_status字段查看入駐申請(qǐng)狀態(tài):
UNDER_REVIEW:審核中;微信支付的審核人員正在審核該子商戶的入駐申請(qǐng),請(qǐng)耐心等待,可在一天后再次查詢。如果申請(qǐng)完成后7個(gè)工作日后,狀態(tài)仍為UNDER_REVIEW,可聯(lián)系微信支付工作人員咨詢;
REJECTED:已駁回;該子商戶的入駐申請(qǐng)被微信支付駁回,需機(jī)構(gòu)登錄微信支付商戶平臺(tái)修改資料后重新提交(請(qǐng)于application_rejected_detail字段查看駁回原因)
文檔展示了如何使用微信支付服務(wù)端 SDK 快速接入掃碼支付產(chǎn)品,完成與微信支付對(duì)接的部分。
? 文檔中的代碼示例是用來闡述 API 基本使用方法,代碼中的示例參數(shù)需替換成商戶自己賬號(hào)及請(qǐng)求參數(shù)才能跑通。
? 以下接入步驟僅提供參考,請(qǐng)商戶結(jié)合自身業(yè)務(wù)需求進(jìn)行評(píng)估、修改。
步驟說明:機(jī)構(gòu)提交子商戶資料,微信支付系統(tǒng)會(huì)為每個(gè)子商戶創(chuàng)建子商戶號(hào)。
敏感信息字段:對(duì)于包含了敏感信息的參數(shù),如聯(lián)系方式等,我們?cè)黾恿恕白侄渭用堋钡陌踩珯C(jī)制,保護(hù)敏感信息只能被數(shù)據(jù)的接收方看到。
? 獲取微信支付平臺(tái)證書和對(duì)應(yīng)的平臺(tái)證書序列號(hào),獲取微信支付平臺(tái)證書。 本接口請(qǐng)求http頭的“Wechatpay-Serial”需要傳平臺(tái)證書序列號(hào)。
? 使用微信支付平臺(tái)證書的公鑰,對(duì)于需要加密的參數(shù)值進(jìn)行RSA加密。Java語(yǔ)言的加密方法的填充方案使用 RSA/ECB/PKCS1Padding ;PHP填充方式為OPENSSL_PKCS1_PADDING。
? 加密后的密文,使用base64編碼后,作為請(qǐng)求中相應(yīng)參數(shù)的值。
代碼示例
// Onboarding Sub-merchant API
public void onboardingSubMerchant() throws IOException {
String onboardingSubMerchantBody = """{
"sp_appid": "wx82ec4jy334ner1",
"sp_mchid": "2422128905",
"name": "testname",
"shortname": "shortname",
"office_phone": "13680534111",
"contact": {
"email": "gP32/1QSaIpKlaFbWgP3hr8W3+YTtiavMRbOJJ6dATymJzxx/b4YPOTKdeRApW6Nt2ZZB9reZ1x45XhIEF/Ztb6mqfFVb6LxpJlHgDL/zpUG51551XQ3Ww+/kVCJcokiIiT1bSwEcCe6tPL2cmdsOEjlTikyrasLc1bG8vaG/i361r0vX9w56O2Mgv3OnJ4fr4xnmxNcVrJnk1f/gBSIiCUWA0163f3LM4KifQelEuz/WtroeKAzRDiI0/pOvXfwrYDK==", // sensitive field, encryption content
"name": "Vxjsrod2RT2aGxeI5i+Z2C4arXYGXZuwE8IrRf6uYu6S5dy4Igw7kjvYWYCNfsgcdXyfjdA4KVntbgSa3zic+ERsOd5u+SNKkaFSH3SwYtpcCyaUMvICTw/6AOY/qy+He9la/gxObgi4zkxvLJmZTJVualTVJWWCIvcuDArW8Kfqp8rBl+IxDEgCojoEmqE7ymVReslGBXWiaPS1UsZx1QJyez3/ijzBa4AKch3XuPx6d3qvM+J8iMx/b94LAfpTihU/j==", // sensitive field, encryption content
"phone": "l8JH2dAGLNJ8P5DENoMV0eW4JgIquV2ZO4conHnZp48g/eVpgvIfMj4Ge6LRVENW4eZksErJnYCQB+EOFEGR0lMhA1LexPLu0en08iM2ghkftYWAsOD4JPkvvc36SAfWal29eoZh4maO6kOGW7G4uBua6JoMsEjR6uuw5Gw5DC2eikcdkDBGk9vHSP/oxRs3Qu8a83GikhLgdpAPitXbZX/TEPG5SUg8Fx4BCMCKOfxy8uakq2/EeCtyBMjaiheUePoA==" // sensitive field, encryption content
},
"business_category": 343,
"merchant_country_code": "344",
"merchant_type": "ENTERPRISE",
"registration_certificate_number": "519723407213085723",
"registration_certificate_date": "2022-06-03",
"settlement_bank_number": "559304578245298347923856",
"business": {
"business_type": "ONLINE",
"mcc": "5344",
"mini_program": "flowerplus"
},
"director": {
"name": "Tom",
"number": "1234567890"
}
}""";
HttpPost httpPost = new HttpPost("https://apihk.mch.weixin.qq.com/v3/global/merchants");
httpPost.addHeader("Accept", "application/json");
httpPost.addHeader("Content-type", "application/json; charset=utf-8");
httpPost.addHeader("Wechatpay-Serial", "0798ABFDCBXXXXXXXXXXXXXXXXXXXXXXX054A761");
httpPost.setEntity(new StringEntity(verifyIdInfoBody));
CloseableHttpResponse response = httpClient.execute(httpPost);
//Process the response
}
其他重要參數(shù)請(qǐng)前往進(jìn)件子商戶API文檔頁(yè)面參考。
步驟說明:用于機(jī)構(gòu)查詢子商戶創(chuàng)建是否成功,接口只提供單個(gè)子商戶信息查詢。
代碼示例
// Query Sub-merchant API
public void querySubMerchant() throws IOException {
HttpGet httpGet = new HttpGet("https://apihk.mch.weixin.qq.com/v3/global/merchants/{$sub_mchid}?sp_appid=wx8888888888888888&sp_mchid=1900000100");
httpGet.addHeader("Accept", "application/json");
httpGet.addHeader("Content-type", "application/json; charset=utf-8");
CloseableHttpResponse response = httpClient.execute(httpGet);
//Process the response
}
其他重要參數(shù)請(qǐng)前往查詢子商戶API文檔頁(yè)面參考。
步驟說明:用于機(jī)構(gòu)子商戶創(chuàng)建成功后,接口提供子商戶信息修改
敏感信息字段:對(duì)于包含了敏感信息的參數(shù),如聯(lián)系方式等,我們?cè)黾恿恕白侄渭用堋钡陌踩珯C(jī)制,保護(hù)敏感信息只能被數(shù)據(jù)的接收方看到。
? 獲取微信支付平臺(tái)證書和對(duì)應(yīng)的平臺(tái)證書序列號(hào),獲取微信支付平臺(tái)證書。 本接口請(qǐng)求http頭的“Wechatpay-Serial”需要傳平臺(tái)證書序列號(hào)。
? 使用微信支付平臺(tái)證書的公鑰,對(duì)于需要加密的參數(shù)值進(jìn)行RSA加密。Java語(yǔ)言的加密方法的填充方案使用 RSA/ECB/PKCS1Padding ;PHP填充方式為OPENSSL_PKCS1_PADDING。
? 加密后的密文,使用base64編碼后,作為請(qǐng)求中相應(yīng)參數(shù)的值。
代碼示例
// Sub Merchant Modifying API
public void modifySubMerchant() throws IOException {
String modifySubMerchantBody = """{
"sub_mchid": "20000100",
"sp_appid": "wx82ec4jy334ner1",
"sp_mchid": "2422128905",
"name": "testname",
"shortname": "shortname",
"office_phone": "13680534111",
"contact": {
"email": "gP32/1QSaIpKlaFbWgP3hr8W3+YTtiavMRbOJJ6dATymJzxx/b4YPOTKdeRApW6Nt2ZZB9reZ1x45XhIEF/Ztb6mqfFVb6LxpJlHgDL/zpUG51551XQ3Ww+/kVCJcokiIiT1bSwEcCe6tPL2cmdsOEjlTikyrasLc1bG8vaG/i361r0vX9w56O2Mgv3OnJ4fr4xnmxNcVrJnk1f/gBSIiCUWA0163f3LM4KifQelEuz/WtroeKAzRDiI0/pOvXfwrYDK==", // sensitive field, encryption content
"name": "Vxjsrod2RT2aGxeI5i+Z2C4arXYGXZuwE8IrRf6uYu6S5dy4Igw7kjvYWYCNfsgcdXyfjdA4KVntbgSa3zic+ERsOd5u+SNKkaFSH3SwYtpcCyaUMvICTw/6AOY/qy+He9la/gxObgi4zkxvLJmZTJVualTVJWWCIvcuDArW8Kfqp8rBl+IxDEgCojoEmqE7ymVReslGBXWiaPS1UsZx1QJyez3/ijzBa4AKch3XuPx6d3qvM+J8iMx/b94LAfpTihU/j==", // sensitive field, encryption content
"phone": "l8JH2dAGLNJ8P5DENoMV0eW4JgIquV2ZO4conHnZp48g/eVpgvIfMj4Ge6LRVENW4eZksErJnYCQB+EOFEGR0lMhA1LexPLu0en08iM2ghkftYWAsOD4JPkvvc36SAfWal29eoZh4maO6kOGW7G4uBua6JoMsEjR6uuw5Gw5DC2eikcdkDBGk9vHSP/oxRs3Qu8a83GikhLgdpAPitXbZX/TEPG5SUg8Fx4BCMCKOfxy8uakq2/EeCtyBMjaiheUePoA==" // sensitive field, encryption content
},
"business_category": 343,
"merchant_country_code": "344",
"merchant_type": "ENTERPRISE",
"registration_certificate_number": "519723407213085723",
"registration_certificate_date": "2022-06-03",
"settlement_bank_number": "559304578245298347923856",
"business": {
"business_type": "ONLINE",
"mcc": "5344",
"mini_program": "flowerplus"
},
"director": {
"name": "Tom",
"number": "1234567890"
}
}""";
httpPut httpPut = new httpPut("https://apihk.mch.weixin.qq.com/v3/global/merchants");
httpPut.addHeader("Accept", "application/json");
httpPut.addHeader("Content-type", "application/json; charset=utf-8");
httpPut.addHeader("Wechatpay-Serial", "0798ABFDCBXXXXXXXXXXXXXXXXXXXXXXX054A761");
httpPut.setEntity(new StringEntity(verifyIdInfoBody));
CloseableHttpResponse response = httpClient.execute(httpPut);
//Process the response
}
其他重要參數(shù)請(qǐng)前往修改子商戶API文檔頁(yè)面參考。
對(duì)于H5支付的產(chǎn)品介紹,請(qǐng)閱讀H5支付權(quán)限申請(qǐng) / 產(chǎn)品介紹。
為方便機(jī)構(gòu)在申請(qǐng)子商戶時(shí)為子商戶申請(qǐng)H5支付權(quán)限,我們?cè)谧由虘暨M(jìn)件/修改/查詢API接口內(nèi)融合了H5權(quán)限申請(qǐng)能力。
子商戶進(jìn)件/修改/查詢API接口的回包中,使用 h5_authorization_state 表示子商戶的H5支付權(quán)限狀態(tài);該狀態(tài)會(huì)決定您應(yīng)當(dāng)對(duì)子商戶進(jìn)行何種操作:
● UNAUTHORIZED 未授權(quán):子商戶未在微信支付系統(tǒng)開通支付權(quán)限,請(qǐng)通過修改子商戶接口填寫H5申請(qǐng)資料為子商戶申請(qǐng)H5支付權(quán)限;或者您也可以直接通過 進(jìn)件子商戶接口 填寫H5申請(qǐng)資料,直接獲得H5支付權(quán)限狀態(tài)為UNDER_REVIEW的子商戶;
● UNDER_REVIEW 審核中:您的H5支付權(quán)限申請(qǐng)單已受理,微信支付的審核人員將在3~5個(gè)工作日左右完成申請(qǐng)單審核;請(qǐng)通過 查詢子商戶接口 查詢審核結(jié)果;
● REJECETED 已駁回:您的H5支付權(quán)限申請(qǐng)單被駁回,請(qǐng)通過 查詢子商戶接口 查詢具體駁回原因后,通過 修改子商戶接口 更新H5申請(qǐng)資料;
● APPROVED 已通過:您的H5支付權(quán)限申請(qǐng)已通過,H5支付權(quán)限已開通。如果您需要修改H5支付域名,請(qǐng)通過 修改子商戶接口 更新域名(注意:域名會(huì)根據(jù)您的輸入全量更新);
● UNDER_PUNISHMENT 處罰中:子商戶違反微信支付條例,處于被處罰階段,請(qǐng)聯(lián)系BD處理;
● APPLICATION_FAILED 申請(qǐng)失敗:您的H5支付申請(qǐng)失敗,請(qǐng)通過 查詢子商戶接口 查詢失敗原因后,通過 修改子商戶接口 重新申請(qǐng)H5支付權(quán)限。
Customer Service Tel
Business Development
9:00-18:00
Monday-Friday GMT+8
Technical Support
WeChat Pay Global
ICP證