為了在保證支付安全的前提下,帶給商戶簡(jiǎn)單、一致且易用的開(kāi)發(fā)體驗(yàn),我們推出了全新的微信支付APIv3接口。該版本API的具體規(guī)則請(qǐng)參考“APIv3接口規(guī)則”
為了幫助開(kāi)發(fā)者調(diào)用開(kāi)放接口,我們提供了JAVA、PHP、GO三種語(yǔ)言版本的開(kāi)發(fā)庫(kù),封裝了簽名生成、簽名驗(yàn)證、敏感信息加/解密、媒體文件上傳等基礎(chǔ)功能(更多語(yǔ)言版本的開(kāi)發(fā)庫(kù)將在近期陸續(xù)提供)
測(cè)試步驟:
1、根據(jù)自身開(kāi)發(fā)語(yǔ)言,選擇對(duì)應(yīng)的開(kāi)發(fā)庫(kù)并構(gòu)建項(xiàng)目,具體配置請(qǐng)參考下面鏈接的詳細(xì)說(shuō)明:
? wechatpay-java(推薦)wechatpay-apache-httpclient,適用于Java開(kāi)發(fā)者。
? wechatpay-php(推薦)、wechatpay-guzzle-middleware,適用于PHP開(kāi)發(fā)者
注:當(dāng)前開(kāi)發(fā)指引接口PHP示例代碼采用wechatpay-guzzle-middleware版本
? wechatpay-go,適用于Go開(kāi)發(fā)者
更多資源可前往微信支付開(kāi)發(fā)者社區(qū)搜索查看
2、創(chuàng)建加載商戶私鑰、加載平臺(tái)證書(shū)、初始化httpClient的通用方法
@Before
public void setup() throws IOException {
// 加載商戶私鑰(privateKey:私鑰字符串)
PrivateKey merchantPrivateKey = PemUtil
.loadPrivateKey(new ByteArrayInputStream(privateKey.getBytes("utf-8")));
// 加載平臺(tái)證書(shū)(mchId:商戶號(hào),mchSerialNo:商戶證書(shū)序列號(hào),apiV3Key:V3密鑰)
AutoUpdateCertificatesVerifier verifier = new AutoUpdateCertificatesVerifier(
new WechatPay2Credentials(mchId, new PrivateKeySigner(mchSerialNo, merchantPrivateKey)),apiV3Key.getBytes("utf-8"));
// 初始化httpClient
httpClient = WechatPayHttpClientBuilder.create()
.withMerchant(mchId, mchSerialNo, merchantPrivateKey)
.withValidator(new WechatPay2Validator(verifier)).build();
}
@After
public void after() throws IOException {
httpClient.close();
}
3、基于接口的示例代碼,替換請(qǐng)求參數(shù)后可發(fā)起測(cè)試
說(shuō)明:
? 上面的開(kāi)發(fā)庫(kù)為微信支付官方開(kāi)發(fā)庫(kù),其它沒(méi)有審核或者控制下的第三方工具和庫(kù),微信支付不保證它們的安全性和可靠性
通過(guò)包管理工具引入SDK后,可根據(jù)下面每個(gè)接口的示例代碼替換相關(guān)參數(shù)后進(jìn)行快速測(cè)試
? 開(kāi)發(fā)者如果想詳細(xì)了解簽名生成、簽名驗(yàn)證、敏感信息加/解密、媒體文件上傳等常用方法的具體代碼實(shí)現(xiàn),可閱讀下面的詳細(xì)說(shuō)明:
1.簽名生成
3.敏感信息加解密
5.wechatpayCertificates(平臺(tái)證書(shū))
? 如想更詳細(xì)的了解我們的接口規(guī)則,可查看我們的接口規(guī)則指引文檔
申請(qǐng)單狀態(tài)變化如下:
重點(diǎn)步驟說(shuō)明:
步驟3 商戶入駐,服務(wù)商收集商戶資料后,調(diào)用提交申請(qǐng)單接口,提交創(chuàng)建入駐申請(qǐng)單。
步驟5 創(chuàng)建申請(qǐng)單后,可通過(guò)查詢申請(qǐng)單狀態(tài)接口,獲取特約商戶簽約鏈接,讓商戶掃碼確認(rèn)聯(lián)系信息,后續(xù)申請(qǐng)單進(jìn)度可通過(guò)公眾號(hào)自動(dòng)通知超級(jí)管理員(簡(jiǎn)稱超管)。
步驟10 進(jìn)件成功后,若特約商戶需修改結(jié)算賬號(hào)時(shí),服務(wù)商可調(diào)用修改結(jié)算賬號(hào)接口來(lái)幫助特約商戶修改結(jié)算信息,修改后通過(guò)狀態(tài)碼判斷是否修改成功。也可通過(guò)調(diào)用查詢結(jié)算賬號(hào)接口來(lái)查詢核查結(jié)算賬號(hào)信息。
文檔展示了如何使用微信支付服務(wù)端 SDK 快速接入特約商戶進(jìn)件,完成與微信支付對(duì)接的部分。
注意:
步驟說(shuō)明:服務(wù)商收集商戶資料后,調(diào)用提交申請(qǐng)單接口,提交創(chuàng)建入駐申請(qǐng)單。
示例代碼:
public void ApplymentSubMch() throws Exception {
//請(qǐng)求URL
HttpPost httpPost = new HttpPost("https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/");
// 請(qǐng)求body參數(shù)
String reqdata = "{"
+ "\"business_info\": {"
+ "\"merchant_shortname\":\"上海XXX有限公司\","
+ "\"service_phone\":\"139XXXX\","
+ "\"sales_info\": {"
+ "\"mini_program_info\": {"
+ "\"mini_program_pics\": ["
+ "\"0\":\"F8O5MNAOlYZyxZcLnWXkyk72coZ3CVX3XobPZng-xepKPTrcH_XMfrGGYLi1XFogMG9P25LSUX6gjXU5iPI74YqiRUDfORyw2d76wK3vzuQ\""
+ "],"
+ "\"mini_program_sub_appid\":\"wx76c3f74c108876c2\""
+ "},"
+ "\"mp_info\": {"
+ "\"mp_pics\": ["
+ "\"0\":\"F8O5MNAOlYZyxZcLnWXkys5TBxf0dyfesnyfNuquBMArHRfgCq8hDRdscDpblCcEgvgV5MkVch9IBEX7aatZCmI8k5Wdb_M8a4bYcmlg6V8\""
+ "],"
+ "\"mp_sub_appid\":\"wx85c88c63bd22651f\""
+ "},"
+ "\"sales_scenes_type\": ["
+ "\"0\":\"SALES_SCENES_MP\","
+ "\"1\":\"SALES_SCENES_MINI_PROGRAM\""
+ "]"
+ "}"
+ "},"
+ "\"subject_info\": {"
+ "\"business_license_info\": {"
+ "\"legal_person\":\"江XX\","
+ "\"license_copy\":\"F8O5MNAOlYZyxZcLnWXkysZ5xo8fE3SHJ1pHUe6OJKmNIWtqUVyv4aY2-JLTgjDOSovWaKkBu3AbkjGuQXhesDzREu2pT_Yf_hxlFKPJMwQ\","
+ "\"merchant_name\":\"上海XXX有限公司\","
+ "\"license_number\":\"91310118MA1JXXXX\""
+ "},"
+ "\"subject_type\":\"SUBJECT_TYPE_ENTERPRISE\","
+ "\"identity_info\": {"
+ "\"owner\":true,"
+ "\"id_doc_type\":\"IDENTIFICATION_TYPE_IDCARD\","
+ "\"id_card_info\": {"
+ "\"id_card_copy\":\"F8O5MNAOlYZyxZcLnWXkyvLpqoz7MNRULxju0NqUCtLGBl_vm8Bhj9uAyuLyDART9UsA10spF9gbT3DEoM85HxPQOhMuilK0zLtOxAjPx58\","
+ "\"card_period_end\":\"2035-12-28\","
+ "\"card_period_begin\":\"2015-12-28\","
+ "\"id_card_name\":\"JRMJGA7B7oSVS+krFeaQn4AvYZE2LL9tTwA+XXa9lYJU4AhS+Qheb7fhgo+D+hfa0v+ykU1BVvVo7NpCfgOYQqmYDyYF27Q/p4hB7IoqZLhJUE+hTG45VNoa9ASaKG79Hg+eGz4YTIHFGMFm1ljyg4fd5lGJixCqn38/gCfwm5x6vDOMVkFpqbUdR7klQwReGoG7iSlEpr4gZPqzItcBHiuXidMToKZTX1Lol1Lx52DHk0blcdh1CMRhv+wxQzF0lJMy/WtVyjKuB8daDbLJKTEwDx5KfkTZGHmGiaJnWY0qFX03sXsufvfB0Wj6Z37+nJnV16fplPmdr1/KEHamLw==\","
+ "\"id_card_national\":\"F8O5MNAOlYZyxZcLnWXkyvcmQrkBXCIo2vZGUoM6ER-skL5k6IOhzeJ34tNNUggQIPfJbM_pzdg9jM4pQbkIm84_bKfi2JKNn99xIurNgwI\","
+ "\"id_card_number\":\"V0quwnIu/PLbdQQ3/nzMqjvHtChDqed4Jpc3Iy2lgnFoWVNXguRWBHMYKHaLgLvnxLvO6TciMnrSw13QzUJD4ZnEIiks8gGTd+OCzl5Jl3F+sneQ+Js4akBnCSBQso/SERvi6vUqCeRhX1vtiFsmKtqlL8r/ssrFev4FoJEka5gGME1osTgcpMMTIR8rolIO1oXbl3e8z5RDics5xKH2Ogjzis73yq9M18ap0uRRdLWoX/cxeG3tbU1bi5jZsAU9hGHXs4BKTaHfrslsKIkqXR0f2Jpk7H5qtwAyP8glcALN7gB5DIOmBEIZ5zx2PrDm38CsZHstu0hF8beXV/PG2w==\""
+ "}"
+ "}"
+ "},"
+ "\"business_code\":\"20201126100507000003\","
+ "\"contact_info\": {"
+ "\"contact_name\":\"AD2jwe8eYFYfeoSmBpyRYUawyQgQkUoAajOlHnQM/JzproDF7hikLDouMr5Mb1W5otvdJZYEipG0HzwLpG9NXbqP6SXSpzQFb8fY5cpuXZsIbDy70lAybF0bbxJiJw1PHSd7KpMbu0XHqwlicePLUOw7HCNV6euQsKEvtusiWsaVrNNdKXpj3ONhyAg2ws4ibc56GUVoNll3osmGLPi6/bIn3pD6sjNThgPE9UzRQax0XPwgIpafIewQiVy0GNtv5P33wqPa9pAsdEmaLXNtQr2Ddjw5SYMInen1qbVO8NP0VhuWmYiAjd1WbkNnR+gbwsilBCYYeRuFbKfqatASnA==\","
+ "\"mobile_phone\":\"GLc5+TuqJbxLeQO+CrKeDWF+7lZq9IsidIU4zcMpus4qsE8r1qNyvVMjrZfWLrjOItiQhXqkiKZs0B4M0UWAviWwmBhNWW0BJrauBjZbGZU+pLHC/2eOetdDC4sQqHN7Xw0N4tizqeQNu49n+DbSiv0TL09EcmNUUV9rImfjpVyo77MxKhPvdg3ODwS+IVvY2Tc9q11iBgaPIQ+XwoBaJGth1wdw0GLgEFUmX02TWxjHxq7f5O1RU3LjBlt1O+56ZZYpA+zr+IjQ/TwrIDp+4nk9v1oW2wtHuwrdqKrlLyJ1/zdoqwSddLuGxp8PwSM8CKobQP8TXhJu0S9pwLbNyg==\","
+ "\"contact_id_number\":\"iC35X6SaOx4A4BEJ4fmM2oOkYRO5rEzRh2QRdrxFD3+HwmNjxddsm1LoqfhSiV34DAO2x3Ded3q2c1LJ7NHqa3/IGCDss4FKlgIyiu5AmzQTTYwsobmvVFxeSUXA4PnH/tUTfatJOuj+9Emt7fmnpO9uWeCLIn5CXaaABrXpO4mUu8qPBaoF2jTfbwBm6QiYX58kATyRrIvBRs6VorHJydXkz3P1hCejh8sAYoJXlNHnoajI+NEwiWX9RhwUadYLbMwww68cc7Yzehp3s6an0NWuC76Y4e7FQ/i5D9ZpUvLKUoYfFsZMnHrv/PhLxmv5l8gQs9/IkmOdYfRujKZJwQ==\","
+ "\"contact_email\":\"ggK2ABtJ8bBiBo1iM7I6R2yEvhD6WC96d07gthnPGajc4lBCKpIqXjyNX8B97vc0OilyLRNUcySbT/KUejPyu4x9W6Ok6iS4zcerfKfIQkKs+3JXIMo0bu+GyI5O0fzRrPg1Mek2okfIjVK9wiTNJTzoGyz9twMXEaqqrOTbysyhnkqfrol5dad/TPg8qNWaBO3+Ma/hr1Tr0xeHWkKX3mBySC3NW49HM51x0PvFAwnStHr/8hiGzGpqAA3yJuYdlEwey3Lv+/bMmbTq+AyrYq9xX3q+n0VHuiSnzgICPwQiP4zXsoivA0bm7DSgcP1Oa6MjpGqMOS7AU1dHyak2GQ==\""
+ "},"
+ "\"bank_account_info\": {"
+ "\"account_number\":\"Bfu6CzrRWlVTLZwjEK2CCXG0KRfGoIsbYs9IYmtFcV9FTEVLCcVCRGW6DVE2hMMr7U9tSdo7QqsptXZ7Zhciandyx9kRkY/VmPywurySvCbqpOLbx3AgmQY7H6/Ye542R0uloi6Pdp5FjqY/TdnlDcTS4cqv9iqU0DqKAUt7q+L6jZ8lrSlGFPI/1RkXCGAhlTSZ/iAJYDWzcN/E0cno9BQPYCmEIWldzj7W3Tmhi1eaZYX5mlLWnTOuVmMsRXIehb4y6LCi6T0kS7/c3GOFwlTzHVaaUgFqZhOL00h2G4Cl94uZfuVNO7KTiFaWtV61muEN6JfaSnFwRDSHxhtsRg==\","
+ "\"bank_address_code\":\"310101\","
+ "\"account_name\":\"RVBRWZKlmzrjkDmz4uEkaLQLU5q5xErXGoWhzDNdnQjRlfn1NVHL2EtIE+B0BULFNOHrX61q13lcgo9CDal9YJ/LjZkzAAsivwJZpNSRZbAsNNjqbYiiVhdnxYpwMqtukVgZAFgx0XMovOeSGX1+Dosc2vKJSsxtUw6wJXcZbMjvsX5/xamFTvRIx1J2a/q3ODBJ9URO5O2FDhGwLx8LQnFIv7xUDM3JXw7c6+eNy1OYTVwlj3/MIDQVw2eiPjpG1vC6K6PRwCI4wFZk1QwH99Xa3Wwvf+ek54j7FQTh0N703dK6jjonL5L6Lh9ZsckLx45InkARlPnU0KQpoK5g9w==\","
+ "\"bank_account_type\":\"BANK_ACCOUNT_TYPE_CORPORATE\","
+ "\"account_bank\":\"招商銀行\(zhòng)""
+ "},"
+ "\"settlement_info\": {"
+ "\"settlement_id\":\"716\","
+ "\"qualification_type\":\"零售批發(fā)/生活?yuàn)蕵?lè)/網(wǎng)上商城/其他\""
+ "}"
+ "}";
StringEntity entity = new StringEntity(reqdata,"utf-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Wechatpay-Serial", "XXXXXXXXXXXXXX");
//完成簽名并執(zhí)行請(qǐng)求
CloseableHttpResponse response = httpClient.execute(httpPost);
try {
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) { //處理成功
System.out.println("success,return body = " + EntityUtils.toString(response.getEntity()));
} else if (statusCode == 204) { //處理成功,無(wú)返回Body
System.out.println("success");
} else {
System.out.println("failed,resp code = " + statusCode+ ",return body = " + EntityUtils.toString(response.getEntity()));
throw new IOException("request failed");
}
} finally {
response.close();
}
}
重要入?yún)⒄f(shuō)明:
? business_code:業(yè)務(wù)申請(qǐng)編號(hào)。
1、服務(wù)商自定義的唯一編號(hào)。
2、每個(gè)編號(hào)對(duì)應(yīng)一個(gè)申請(qǐng)單,每個(gè)申請(qǐng)單審核通過(guò)后會(huì)生成一個(gè)微信支付商戶號(hào)。
3、若申請(qǐng)單被駁回,可填寫(xiě)相同的“業(yè)務(wù)申請(qǐng)編號(hào)”,即可覆蓋修改原申請(qǐng)單信息
? mobile_phone:聯(lián)系手機(jī)。
1、11位數(shù)字。
2、用于接收微信支付的重要管理信息及日常操作驗(yàn)證碼。
3、該字段需進(jìn)行加密處理,加密方法詳見(jiàn)敏感信息加密說(shuō)明。(提醒:必須在HTTP頭中上送Wechatpay-Serial)
? bank_account_type:賬戶類型。
1、若主體為企業(yè)/黨政、機(jī)關(guān)及事業(yè)單位/其他組織,可填寫(xiě):對(duì)公銀行賬戶。
2、若主體為個(gè)體戶,可選擇填寫(xiě):對(duì)公銀行賬戶或經(jīng)營(yíng)者個(gè)人銀行卡。
枚舉值:
BANK_ACCOUNT_TYPE_CORPORATE:對(duì)公銀行賬戶
BANK_ACCOUNT_TYPE_PERSONAL:經(jīng)營(yíng)者個(gè)人銀行卡
? account_name:開(kāi)戶名稱。
1、選擇“經(jīng)營(yíng)者個(gè)人銀行卡”時(shí),開(kāi)戶名稱必須與“經(jīng)營(yíng)者證件姓名”一致。
2、選擇“對(duì)公銀行賬戶”時(shí),開(kāi)戶名稱必須與營(yíng)業(yè)執(zhí)照/登記證書(shū)的“商戶名稱”一致。
3、該字段需進(jìn)行加密處理,加密方法詳見(jiàn)敏感信息加密說(shuō)明。(提醒:必須在HTTP頭中上送Wechatpay-Serial)
注意:
更多參數(shù)、響應(yīng)詳情及錯(cuò)誤碼請(qǐng)參見(jiàn)提交申請(qǐng)單接口文檔
步驟說(shuō)明:創(chuàng)建申請(qǐng)單后,可通過(guò)查詢申請(qǐng)單狀態(tài)接口,獲取特約商戶簽約鏈接,讓商戶掃碼確認(rèn)聯(lián)系信息,后續(xù)申請(qǐng)單進(jìn)度可通過(guò)公眾號(hào)自動(dòng)通知超級(jí)管理員(簡(jiǎn)稱超管)。
示例代碼:
public void QueryApplymentInfo() throws Exception {
//請(qǐng)求URL
HttpGet httpGet = new HttpGet("https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/business_code/1900013511_10000");
httpGet.setHeader("Accept", "application/json");
//完成簽名并執(zhí)行請(qǐng)求
CloseableHttpResponse response = httpClient.execute(httpGet);
try {
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) { //處理成功
System.out.println("success,return body = " + EntityUtils.toString(response.getEntity()));
} else if (statusCode == 204) { //處理成功,無(wú)返回Body
System.out.println("success");
} else {
System.out.println("failed,resp code = " + statusCode+ ",return body = " + EntityUtils.toString(response.getEntity()));
throw new IOException("request failed");
}
} finally {
response.close();
}
}
重要入?yún)⒄f(shuō)明:
? business_code:業(yè)務(wù)申請(qǐng)編號(hào)。
1、只能由數(shù)字、字母或下劃線組成,建議前綴為服務(wù)商商戶號(hào)。
2、服務(wù)商自定義的唯一編號(hào)。
3、每個(gè)編號(hào)對(duì)應(yīng)一個(gè)申請(qǐng)單,每個(gè)申請(qǐng)單審核通過(guò)后生成一個(gè)微信支付商戶號(hào)。
4、若申請(qǐng)單被駁回,可填寫(xiě)相同的“業(yè)務(wù)申請(qǐng)編號(hào)”,即可覆蓋修改原申請(qǐng)單信息。
? applyment_id:申請(qǐng)單號(hào), 微信支付分配的申請(qǐng)單號(hào)。
注意:
更多參數(shù)、響應(yīng)詳情及錯(cuò)誤碼請(qǐng)參見(jiàn)查詢申請(qǐng)單狀態(tài)接口文檔
步驟說(shuō)明:進(jìn)件成功后,若特約商戶需修改結(jié)算賬號(hào)時(shí),服務(wù)商可調(diào)用修改結(jié)算賬號(hào)接口來(lái)幫助特約商戶修改結(jié)算信息。
示例代碼:
public void UpdateSubMchInfo() throws Exception {
//請(qǐng)求URL
HttpPost httpPost = new HttpPost("https://api.mch.weixin.qq.com/v3/apply4sub/sub_merchants/190000XXX/modify-settlement");
// 請(qǐng)求body參數(shù)
String reqdata = "{"
+ "\"account_type\":\"ACCOUNT_TYPE_BUSINESS\","
+ "\"account_bank\":\"工商銀行\(zhòng)","
+ "\"bank_address_code\":\"110000\","
+ "\"bank_name\":\"施秉縣農(nóng)村信用合作聯(lián)社城關(guān)信用社\","
+ "\"bank_branch_id\":\"402713354941\","
+ "\"account_number\":\"d+xT+MQCvrLHUVDWv/8MR/dB7TkXM2YYZlokmXzFsWs35NXUot7C0NcxIrUF5FnxqCJHkNgKtxa6RxEYyba1+VBRLnqKG2fSy/Y5qDN08Ej9zHCwJjq52Wg1VG8MRugli9YMI1fI83KGBxhuXyemgS/hqFKsfYGiOkJqjTUpgY5VqjtL2N4l4z11T0ECB/aSyVXUysOFGLVfSrUxMPZy6jWWYGvT1+4P633f+R+ki1gT4WF/2KxZOYmli385ZgVhcR30mr4/G3HBcxi13zp7FnEeOsLlvBmI1PHN4C7Rsu3WL8sPndjXTd75kPkyjqnoMRrEEaYQE8ZRGYoeorwC+w==\""
+ "}";
StringEntity entity = new StringEntity(reqdata,"utf-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Wechatpay-Serial", "XXXXXXXXXXXX");
//完成簽名并執(zhí)行請(qǐng)求
CloseableHttpResponse response = httpClient.execute(httpPost);
try {
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) { //處理成功
System.out.println("success,return body = " + EntityUtils.toString(response.getEntity()));
} else if (statusCode == 204) { //處理成功,無(wú)返回Body
System.out.println("success");
} else {
System.out.println("failed,resp code = " + statusCode+ ",return body = " + EntityUtils.toString(response.getEntity()));
throw new IOException("request failed");
}
} finally {
response.close();
}
}
重要入?yún)⒄f(shuō)明:
? sub_mchid:特約商戶號(hào),請(qǐng)?zhí)顚?xiě)本服務(wù)商負(fù)責(zé)進(jìn)件的特約商戶號(hào)。特殊規(guī)則:長(zhǎng)度最小8個(gè)字節(jié)。
? account_bank:開(kāi)戶銀行,請(qǐng)?zhí)顚?xiě)開(kāi)戶銀行名稱,詳細(xì)參見(jiàn)開(kāi)戶銀行對(duì)照表。
? account_number:銀行賬號(hào)。
1、數(shù)字,長(zhǎng)度遵循系統(tǒng)支持的開(kāi)戶銀行對(duì)照表中對(duì)公/對(duì)私卡號(hào)長(zhǎng)度要求
2、該字段需進(jìn)行加密處理,加密方法詳見(jiàn)敏感信息加密說(shuō)明。(提醒:必須在HTTP頭中上送Wechatpay-Serial)
注意:
更多參數(shù)、響應(yīng)詳情及錯(cuò)誤碼請(qǐng)參見(jiàn)修改結(jié)算賬號(hào)接口文檔
步驟說(shuō)明:服務(wù)商調(diào)用修改結(jié)算賬號(hào)接口來(lái)幫助特約商戶修改結(jié)算信息,修改后通過(guò)狀態(tài)碼判斷是否修改成功。也可通過(guò)調(diào)用查詢結(jié)算賬號(hào)接口來(lái)查詢核查結(jié)算賬號(hào)信息。
示例代碼:
public void QuerySettleMent() throws Exception {
//請(qǐng)求URL
HttpGet httpGet = new HttpGet("https://api.mch.weixin.qq.com/v3/apply4sub/sub_merchants/190000XXXX/settlement");
httpGet.setHeader("Accept", "application/json");
//完成簽名并執(zhí)行請(qǐng)求
CloseableHttpResponse response = httpClient.execute(httpGet);
try {
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) { //處理成功
System.out.println("success,return body = " + EntityUtils.toString(response.getEntity()));
} else if (statusCode == 204) { //處理成功,無(wú)返回Body
System.out.println("success");
} else {
System.out.println("failed,resp code = " + statusCode+ ",return body = " + EntityUtils.toString(response.getEntity()));
throw new IOException("request failed");
}
} finally {
response.close();
}
}
重要入?yún)⒄f(shuō)明:
? sub_mchid:特約商戶號(hào)、請(qǐng)輸入本服務(wù)商進(jìn)件、已簽約的特約商戶號(hào)。
注意:
更多參數(shù)、響應(yīng)詳情及錯(cuò)誤碼請(qǐng)參見(jiàn)查詢結(jié)算賬戶接口文檔
A1:請(qǐng)按照以下幾點(diǎn)檢查
1. 服務(wù)商商戶號(hào)被處罰,被限制權(quán)限,請(qǐng)登錄服務(wù)商商戶平臺(tái)查看站內(nèi)信,按照收到的站內(nèi)信提示申訴解決
2. 請(qǐng)求頭中的參數(shù)mchid填寫(xiě)錯(cuò)誤,該參數(shù)只能填寫(xiě)為普通服務(wù)商的商戶號(hào),不能填寫(xiě)為其他類型的商戶號(hào)
3. 特約商戶進(jìn)件接口不允許進(jìn)件小微商戶
A2:請(qǐng)按照以下幾點(diǎn)檢查
1. 身份證號(hào)碼字段(id_card_number)取值錯(cuò)誤,請(qǐng)?zhí)顚?xiě)個(gè)體戶經(jīng)營(yíng)者/法定代表人對(duì)應(yīng)身份證的號(hào)碼
2. 身份證號(hào)碼字段(id_card_number)取值錯(cuò)誤,身份證號(hào)碼的規(guī)則是15位數(shù)字或17位數(shù)字+1位數(shù)字|X,該字段需進(jìn)行加密處理
3. 請(qǐng)使用辦理營(yíng)業(yè)執(zhí)照的身份證號(hào)碼
A3:請(qǐng)仔細(xì)檢查上傳的參數(shù)是否有問(wèn)題,如果傳入組織機(jī)構(gòu)代碼證的結(jié)構(gòu)(organization_info),將進(jìn)行真實(shí)校驗(yàn),請(qǐng)去掉組織機(jī)構(gòu)代碼證的結(jié)構(gòu)(organization_info)
A4:請(qǐng)按照以下幾點(diǎn)檢查
1. 系統(tǒng)繁忙,可以稍后重試
2. 請(qǐng)求頭中的參數(shù)mchid填寫(xiě)錯(cuò)誤,該參數(shù)只能填寫(xiě)為普通服務(wù)商的商戶號(hào)
3. 在請(qǐng)求參數(shù)中,不需要的參數(shù)不要上傳,不能傳空值,空的字段也不能上傳
A5:入駐后若沒(méi)有修改過(guò)銀行卡,除非是匯款失敗,否則不返回verify_result字段