文档中心 > 开发文档

支付(奇门)对接FAQ

更新时间:2018/10/23 访问次数:3675

FAQ1:联调是发现报错: merchantCode not found
答:该错误码一般是在rt网关没有添加商家的appKey配置,在配置中新增merchantCode: appKey。

FAQ2:卡余额查询、支付、撤销、查询、退款这些接口都需要对接吗?
答:支付对接要接ack, pay, cancel 和 query,然后refund按照实际需求提供。 这几个接口的功能分别是:
ack: 提供卡余额查询
pay:实际扣除卡余额
cancel:对一次支付发起撤销,语义:1.是如果支付成功将钱全额退回;2.如果未找到支付单据返回固定错误码,即设置errorCode为“DEDUCTION_RECORD_NOT_FOUND”;3.如果重复的撤销直接返回撤销成功,返回结果保持和第一次撤销成功一致
query:对一次支付或者撤销发起查询,返回支付或者撤销的结果
refund:对一次支付发起退款,和撤销的差别在于,在支付成功出来之后才允许发起退款,所以不存在未支付成功的退款。

FAQ3:对返回报文格式不太理解
答:返回报文是一个json字符串,比如


由一个xxxResultDo(比如ackResultDO, payResultDO等)+ errorCode + errorMessage + success组成。
这里有几个关键点是:
成功的情况一定要返回 xxxResultDO,status设置为 "SUCCESS"
对于处理未决的状态,也要设置xxxResultDO,status设置为 "UNKNOWN"
对于其他状况,都认为是失败

FAQ4:cancel撤销接口商户接入总是不能正确对接
答:要保证两个原则:
如果是重复的撤销,直接返回撤销成功, 返回和第一次撤销成功返回保持一致
如果是不不存在支付的撤销,errorCode 返回 "DEDUCTION_RECORD_NOT_FOUND" 这个错误码

还有重复的撤销返回和撤销成功的返回保持一致。

FAQ5:对于重复撤销,是指撤销单据号重复还是被撤销的单据号重复呢?
答:撤销都是基于一笔支付来做的,所以重复撤销就是说撤销的时候传入的支付单据号(即被撤销的单据号)是重复的。


即商户撤销API中的这个outTradeNo,如果这笔outTradeNo已经被撤销过,那么就直接返回撤销成功。这个是必须要做的校验。
当然商户也可以先依据requestId来做一层判断,如果发现撤销请求号requestId是重复的,并且如果已经处理成功过,那么就直接返回撤销成功。

FAQ6:refund接口的重复请求的处理逻辑是不是一样的
答:refund接口的话其实是要依赖requestId来做的,因为refund这个接口的语义上,其实是可以存在多次退款的。就是一个outTradeNo 支付单号其实有可能有多次退款。所以要依据requestId(重复请求)来做幂等的判断。

FAQ7:query接口时必须的吗? 如果来不及开发怎么办
答:对于超时返回未决的场景,淘宝这边会依赖query查询一次支付或者撤销的结果做一次优化,但不是必须的。所以商户这边如果没有时间开发的话,可以将query实现为返回查询失败,即 payQueryResultDO 不设置,然后success为false就好了

FAQ8:给商家传的扩展参数都有哪些呢?分别是什么作用?
扩展参数通过api中的attributes传给商家,格式是map的json格式。 目前主要有:
storeId:标识具体门店, 如果有多家门店的话,要使用这个storeId区分是哪一家门店,做数据回流商家,供商家对账用 (store_id是口碑优惠定义的)
posId: 标识门店的pos的机具号,一个门店有多台pos,需要使用posId区分,做数据回流商家,供商家对账用
operatorId:收银员编号, 标识进行操作的收银员是哪一个,做数据回流商家,供商家对账用
bizOrderNo:淘系订单号,并不是所有商家需要
verifyCode:校验码,部分支付方式需要用来做校验,比如家家悦会员电子券,人本储值卡

FAQ9:奇门网关往外部调用时,出现`message":"qimen cloud inernal error","sub_message":"找不到对应的路由信息`错误
答:这个是merchantCode对应的appKey奇门配置有问题。可以联系平台技术协助配置。

FAQ

关于此文档暂时还没有FAQ
返回
顶部