中信银行微信、支付宝支付接口文档问题集锦
2018-09-29 本文已影响55人
哔哩哔哩智能喵
-
关于对账文件的问题
-
Q:如果获取到了对账单,能否确保对账单的数据是全的无遗漏的。
-
A:一般情况下文件数据是全的。
-
-
Q:对账单是如何获取的,是根据一个渠道商全部获取到还是一个商户一个商户获取的。
-
A:对账单是根据商户号(一户一报)获取的。
-
-
Q:下载对账文件时,有的商户没有获取到对账文件,如何判断商户是没有交易 还是数据不全。
-
A:商户没有交易情况,对于支付宝返回return_msg为“账单不存在”,对微信返回return_msg为"No Bill Exist"。
-
-
-
关于重复下单的问题
-
Q:支付宝支付的时候,重复提交同一个支付宝订单会提示“订单账号重复”。
-
A:每次请求下单接口,订单号需要更换,不能重复。
-
-
Q:微信可以重复下单吗?
-
A: 可以,微信下单没有提示重复。
-
-
-
关于支付查询超时
-
Q: 设定时间内,如2分钟,未检测到支付成功,是不是要调用撤销订单的接口?
-
A:2分钟之内未检测到支付成功,刷卡支付需要调用撤销接口,扫码支付需要调用关闭接口。
-
-
-
技术常见问题
-
关于关闭订单,分两种情况
-
对于扫码支付接口
-
扫码支付成功了会有后台消息通知,如果在收款客户端做订单查询轮询,时间可以长一些,例如2分钟(一般这个时间够用),如果到达了轮询最大时间还是未支付状态,要关闭订单,关于关闭订单,分两种情况:
-
对于微信,调用关闭订单接口,只有未支付的订单才可以调用关闭订单,支付成功的订单调用关闭订单不起作用
-
对于支付宝,调用撤销接口,如果支付成功了不允许撤销,撤销接口会返回提示"交易成功,请使用退款接口撤销订单"。
-
支付宝二维码默认时间为20分钟,微信二维码默认时间是2个小时。
-
-
-
对于刷卡支付接口
-
刷卡支付是没有后台消息通知的,如果消费者端没有出现输入密码的情况,接口当即返回是否支付成功;如果消费者端有出现输入密码的情况,需要调用订单查询接口做轮询对于刷卡支付,如果到达了轮询最大时间还是未支付状态,需要调用撤销接口,这个也分两种情况:
-
对于微信,如果支付成功了,撤销会自动退款,相当于消费者未支付
-
对于支付宝,如果支付成功了不允许撤销,撤销接口会返回提示"交易成功,请使用退款接口撤销订单"
-
-
-
-
订单为什么不停的发送消息通知
-
订单支付完成,银行会把微信相关的支付和用户信息通过url发送到商户,商户需要接受并且处理,消息通知是通过下单传的notify_url接收的,格式 xml 格式 接收到的参数,空值不参与签名,有值的参数参与签名进行验签,接收到消息通知需要给我们返回一个xml格式的SUCCESS的报文,我们就不会重复发送消息通知
-
当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。
-
-
消息通知发送规则
- 发送16次消息通知 前8次10s,
- 后8次规则 (x-8)(x-8)20;
- StreamUtils.copyToString(request.getInputStream(), Charset.forName("utf-8"))
-
统一下单支付出现sub_appid and sub_openid not match错误?
-
中信微信后台未配置“子商户appid”,JSAPI时,商户未传openid或openid有误,请检查openid是否正确(openid是由哪个公众号获取的)。订阅号无法支付,要服务号才可以。
-
-
body参数格式错误?
-
body参数不能为空。
-
-
商户数据包attach格式错误?
-
缺少“`”字符;门店Id填写(格式)错误。
-
-
当前页面的URL未注册xxxxxxxxxxxx?
-
中信微信后台对应子商户的支付授权目录未配置或未正确配置,支付目录必须细化至最后一个层级。
-
-
微信服务端添加子商户移动appid时提示“该appid未完成微信认证”?
-
由于开放平台未认证开发者资质,请申请认证后重试。
-
-
支付成功通知不断的给用户下发?
-
商户返回的成功信息有误,商户提供的通知地址有误。
-
-
sub_mch_id与sub_appid不匹配?
-
商户openid生成错误。
-
-
统一支付时返回“签名错误”?
-
key不统一,或者加密方法不一样。
-
-
支付成功,未推荐关注
-
支付成功后推荐关注栏目规则:
- ① 刷卡支付默认有推荐关注
- ② 公众号支付和扫码支付需要5元以上才有推荐关注。
- ③ APP支付默认没有,需要申请配置,需要有一定用户规模才可以申请。
- ④ 已经关注的不展示推荐栏。
- ⑤ 服务号未设置头像的在IOS不展示推荐关注栏。
- ⑥ 用户取消过关注的默认不勾选。
-
-
多个公众号ID,openid以哪个为准?
-
openid必须与所传的wx_appid对应。
-
-
透传接口
-
透传接口是微信要求的,大商户交易过程中,要附加子商户信息。
-
-
调用支付JSAPI缺少参数:appid 是因为授权的原因吗?
-
用微信返回的参数直接调起jsapi,不用再做签名了,paySign也用返回的。
-
-
缺少参数sub_appid,扫码支付?
-
跟新绑的公众号有关系,参数有修改。
-
-
地址报不信任证书的错误
-
采用无证书模式,可以参考以下这篇文章:http://blog.csdn.net/yatusiter/article/details/9090721 。或者:搜索Java调用单向认证的https服务, 无证书调用https服务https://my.oschina.net/ososchina/blog/500925。
-
-
返回xml格式错误?
-
头部是否有设置为Content-Type:text/xml。
-
-
公众号支付终端获取不到二维码?
-
看下调用统一下单接口是否成功,能否获取到core-url,是否是前端生成二维码出的问题。
-
-
openid如何获取?
-
openid无法查看,只能通过微信提供的方式获取,具体操作https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_4。openid要和您传的wx_appid相对应。
-
-
微信可以做长按识别支付吗?
-
微信把长摁识别二维码付款的功能限制了,要想实现这个效果需要使用公众号接口自己生成二维码,形式上和扫码接口生成的二维码一样,但是是可以直接长按识别二维码支付的。
-
-
每天的结算金额,我是不是可以直接用账单做累加就可以了?
-
要当天(00:00:00-23:59:59)交易的净额-相对应的手续费=当天的清算金额。
-
-
如果获取到了对账单,能否确保对账单的数据是全的无遗漏的。
-
一般情况下文件数据是全的。
-
-
对账文件是我们通过接口自动获取的,我们希望能从接口上确定商户D日是否有交易,这个有判断标记吗?
-
商户没有交易情况,对于支付宝返回return_msg为“账单不存在”;微信返回return_msg为"No Bill Exist"。
-
-
支付宝退款接口返回成功,查询接口返回失败的原因是什么?
-
判断请求是否请求成功:商户可使用该接口查询自已通过alipay.trade.refund提交的退款请求是否执行成功。 该接口的返回码10000,仅代表本次查询操作成功,不代表退款成功。如果该接口返回了查询数据,则代表退款成功,如果没有查询到则代表未退款成功,可以调用退款接口进行重试。重试时请务必保证退款请求号一致。请求退款接口必须返回的字段,您再看一下您提供的退款报文,请求退款接口成功了,但是返回的报文中支付宝订单号transaction_id 是空的。
-
-
验签失败可能的原因有哪些?
-
1、秘钥是否正确;
-
2、参数为空值的不参与签名;
-
-
拉起app支付时用的是微信的appid,还是用中信给的appid?
-
app拉起微信支付使用统一下单接口返回的pay_info里对应的数据,不能做任何修改,这一点和公众号支付是一样的;
-
-
中信银行的appid有包名吗?
-
中信appid不会和包名发生关系,中信提供的appid、商户号、秘钥key只用于中信支付接口的调用,你所说的包名和你们在微信开发者平台申请的微信appid是关联的;
-
-
直联微信APP支付和间联中信APP支付的区别是什么?
-
app使用什么样的包名和微信的appid和原来一样,使用中信APP支付的区别是:
-
1、拉起微信支付需要的七个参数appid、partnerid、prepayid、timeStamp、nonceStr、package、sign要全部使用中信app支付返回的pay_info里对应的数据;
-
2、 中信提供的appid、商户号、秘钥key只用于中信支付接口的调用;
-
其他和原来一样;
-
-
-