# 四、上报接口对接
# 上报接口场景说明
交易上报 和 付款码上报 接口集成二选一,具体集成根据商户适合场景。
交易上报: 针对非刷脸支付交易,接口根据商户号(子商户号)和生成的商户订单号作为请求上报。
付款码上报: 针对微信付款码支付交易,而无法获取到商户号和订单号的可以通过此接口做交易上报。
# 接入步骤
1、确保网络符合微信刷脸支付sdk依赖的网络环境,若涉及代理可参考代理设置
2、APP版本:交易上报接口需1.12及以上版本;付款码上报接口需2.11及以上版本
3、推荐使用付款码上报接口,若无法获取付款码,可使用交易上报接口
4、具体接口使用详见接口介绍和实践指引
5、调用上报成功后请联系[微信]进行验收
注:调用上报接口,请确保SDK是正常初始化成功的;接口调用时序需在非刷脸交易成功后调用上报接口
# 1. 付款码上报接口
# 付款码上报(reportPaycode)
接口作用: 设备获取到微信付款码,而无法获取到商户号和订单号的可以通过此接口做交易上报
支持版本: 1.25及以上
请求参数
除公共参数外,
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
auth_code | 是 | string | 微信支付18位付款码 |
返回参数
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
return_code | 是 | string | 错误码。公共定义见公共错误码 |
return_msg | 是 | string(128) | 对错误码的描述 |
调用示例
// 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. 交易上报接口
# 交易上报(reportOrder)
接口作用: 设备产生的非刷脸支付交易,都必须调用此接口上报交易信息,建议每笔非刷脸支付交易发生后,都调用该接口。
支持版本: 1.12及以上
请求参数
除公共参数外,
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
mch_id | 是 | string | 商户号。(若是服务商模式,则填服务商商户号) |
sub_mch_id | 否 | string | 子商户号。(服务商模式填写,其它不填) |
out_trade_no | 是 | string | 商户订单号。 |
返回参数
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
return_code | 是 | string | 错误码。公共定义见公共错误码 |
return_msg | 是 | string(128) | 对错误码的描述 |
调用示例
// 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
*/
# 常见上报不成功问题
Q1: 同一个程序逻辑,有些设备可以上报成功,有些设备却不行?
A1: 和设备没有关系,主要是设备自身是否能连同外网,是否有内网防火墙拦截,iot长连接是否初始化成功等,商户调度的只是简单的人脸SDK接口,理论上刷脸通的话,上报接口就是通的
Q2: 上报接口,重复上报了会有问题吗?或者没交易成功的上报了会怎么样?
A2:重复上报和没交易成功上报只会影响统计,实际商户侧上报的数量会远大于微信侧核实的上报数量
Q3: 非刷脸支付的mch_id和sub_mch_id和扫脸支付的是同一个么?上报时是否可以直接使用扫脸支付的这两个参数?
A3:是同一个,使用刷脸的mch_id和sub_mch_id即可
Q4: 付款码交易上报接口是否只能针对微信付款码?
A4: 需使用设备获取到微信付款码