# 四、上報(bào)接口對(duì)接
# 上報(bào)接口場(chǎng)景說明
交易上報(bào) 和 付款碼上報(bào) 接口集成二選一,具體集成根據(jù)商戶適合場(chǎng)景。
交易上報(bào): 針對(duì)非刷臉支付交易,接口根據(jù)商戶號(hào)(子商戶號(hào))和生成的商戶訂單號(hào)作為請(qǐng)求上報(bào)。
付款碼上報(bào): 針對(duì)微信付款碼支付交易,而無法獲取到商戶號(hào)和訂單號(hào)的可以通過此接口做交易上報(bào)。
# 接入步驟
1、確保網(wǎng)絡(luò)符合微信刷臉支付sdk依賴的網(wǎng)絡(luò)環(huán)境,若涉及代理可參考代理設(shè)置
2、APP版本:交易上報(bào)接口需1.12及以上版本;付款碼上報(bào)接口需2.11及以上版本
3、推薦使用付款碼上報(bào)接口,若無法獲取付款碼,可使用交易上報(bào)接口
4、具體接口使用詳見接口介紹和實(shí)踐指引
5、調(diào)用上報(bào)成功后請(qǐng)聯(lián)系[微信]進(jìn)行驗(yàn)收
注:調(diào)用上報(bào)接口,請(qǐng)確保SDK是正常初始化成功的;接口調(diào)用時(shí)序需在非刷臉交易成功后調(diào)用上報(bào)接口
# 1. 付款碼上報(bào)接口
# 付款碼上報(bào)(reportPaycode)
接口作用: 設(shè)備獲取到微信付款碼,而無法獲取到商戶號(hào)和訂單號(hào)的可以通過此接口做交易上報(bào)
支持版本: 1.25及以上
請(qǐng)求參數(shù)
除公共參數(shù)外,
參數(shù) | 必填 | 類型 | 說明 |
---|---|---|---|
auth_code | 是 | string | 微信支付18位付款碼 |
返回參數(shù)
參數(shù) | 必填 | 類型 | 說明 |
---|---|---|---|
return_code | 是 | string | 錯(cuò)誤碼。公共定義見公共錯(cuò)誤碼 |
return_msg | 是 | string(128) | 對(duì)錯(cuò)誤碼的描述 |
調(diào)用示例
// reportOrder
const char* req = "{\"cmd\":\"reportPaycode\",\"auth_code\":\"120061098828009406\",\"version\":\"1\",\"now\":1540909503}";
char *resp;
unsigned int len;
int ret = wxpayCallFaceService(req, strlen(req), &resp, &len);
if (ret == 0) {
printf("resp: %s len: %u\n", resp, len);
wxpayReleaseResponse(&resp);
}
/*
* resp: {"return_code":"SUCCESS","return_msg":"SUCCESS"} len: 48
*/
# 2. 交易上報(bào)接口
# 交易上報(bào)(reportOrder)
接口作用: 設(shè)備產(chǎn)生的非刷臉支付交易,都必須調(diào)用此接口上報(bào)交易信息,建議每筆非刷臉支付交易發(fā)生后,都調(diào)用該接口。
支持版本: 1.12及以上
請(qǐng)求參數(shù)
除公共參數(shù)外,
參數(shù) | 必填 | 類型 | 說明 |
---|---|---|---|
mch_id | 是 | string | 商戶號(hào)。(若是服務(wù)商模式,則填服務(wù)商商戶號(hào)) |
sub_mch_id | 否 | string | 子商戶號(hào)。(服務(wù)商模式填寫,其它不填) |
out_trade_no | 是 | string | 商戶訂單號(hào)。 |
返回參數(shù)
參數(shù) | 必填 | 類型 | 說明 |
---|---|---|---|
return_code | 是 | string | 錯(cuò)誤碼。公共定義見公共錯(cuò)誤碼 |
return_msg | 是 | string(128) | 對(duì)錯(cuò)誤碼的描述 |
調(diào)用示例
// reportOrder
const char* req = "{\"cmd\":\"reportOrder\",\"mch_id\":\"1281087510\",\"out_trade_no\":\"1030222503UXn64r\",\"version\":\"1\",\"now\":1540909503}";
char *resp;
unsigned int len;
int ret = wxpayCallFaceService(req, strlen(req), &resp, &len);
if (ret == 0) {
printf("resp: %s len: %u\n", resp, len);
wxpayReleaseResponse(&resp);
}
/*
* resp: {"return_code":"SUCCESS","return_msg":"SUCCESS"} len: 48
*/
# 常見上報(bào)不成功問題
Q1: 同一個(gè)程序邏輯,有些設(shè)備可以上報(bào)成功,有些設(shè)備卻不行?
A1: 和設(shè)備沒有關(guān)系,主要是設(shè)備自身是否能連同外網(wǎng),是否有內(nèi)網(wǎng)防火墻攔截,iot長(zhǎng)連接是否初始化成功等,商戶調(diào)度的只是簡(jiǎn)單的人臉SDK接口,理論上刷臉通的話,上報(bào)接口就是通的
Q2: 上報(bào)接口,重復(fù)上報(bào)了會(huì)有問題嗎?或者沒交易成功的上報(bào)了會(huì)怎么樣?
A2:重復(fù)上報(bào)和沒交易成功上報(bào)只會(huì)影響統(tǒng)計(jì),實(shí)際商戶側(cè)上報(bào)的數(shù)量會(huì)遠(yuǎn)大于微信側(cè)核實(shí)的上報(bào)數(shù)量
Q3: 非刷臉支付的mch_id和sub_mch_id和掃臉支付的是同一個(gè)么?上報(bào)時(shí)是否可以直接使用掃臉支付的這兩個(gè)參數(shù)?
A3:是同一個(gè),使用刷臉的mch_id和sub_mch_id即可
Q4: 付款碼交易上報(bào)接口是否只能針對(duì)微信付款碼?
A4: 需使用設(shè)備獲取到微信付款碼