说明:
本帖主要和大家交流一下调用alipay.fund.auth.order.app.freeze(线上资金授权冻结接口)报错自查的方案
参考以下排查方案:
一、调用方法
alipay.fund.auth.order.app.freeze接口响应参数输出的调用方法必须是sdkExecute()。
请使用sdkExecute方法,通过response.getBody(),获取到签名参数,用于支付接口的orderStr。
二、out_order_no和out_request_no重复导致
out_order_no:商户授权资金订单号 ,不能包含除中文、英文、数字以外的字符,创建后不能修改,需要保证在商户端不重复。
out_request_no:商户本次资金操作的请求流水号,用于标示请求流水的唯一性,不能包含除中文、英文、数字以外的字符,需要保证在商户端不重复。
这两个参数必须保证每一次请求都是唯一的,不能重复
pay_timeout: 如果传入了这个订单付款时间参数,但是没有赋值也会报系统异常,如果不赋值默认15M,不传就整个参数不要传入
notify_url :这个异步地址参数也需要传入,需要通过这个冻结异步通知返回的授权码进行付款
三、账号信息不一致问题
必须保证调用接口的appid对应的payee_logon_id(收款方支付宝登录号)和payee_user_id(收款方的支付宝唯一用户号,以2088开头的16位纯数字组成)是一致的,即对应的是相同的一个账户。
payee_logon_id和payee_user_id可以选择传入其中一个 但是不管是传入其中一个还是两个都传入必须保证是和调用接口的appid对应的支付宝账户一致。
注:payee_logon_id表示的是收款方支付宝登录号,比如商户有一个150****的手机账号,但是登录账户为邮箱账户,那么这个参数传入的就应该是邮箱账户 不能传入手机号,使用什么账号登录,这个参数就传入什么,建议使用payee_user_id传值
四、extra_param参数问题
关于extraParam业务参数的问题可以参考文档根据自己的实际行业场景入参信用授权类目查看地址:[url]https://docs.open.alipay.com/10719[/url],这个参数不是必传的,但是如果调用接口出现系统异常错误建议不传入这个参数来测试一下。另外两个参数:外部商户的门店编号outStoreCode和外部商户的门店简称outStoreAlias可根据需求传入
注:如果想要控制支付渠道,enable_pay_channels这个参数是控制支付渠道的,余额宝,花呗,芝麻信用免押金进行支付。(目前渠道参数只开放了这三个)
五、秘钥问题
调用接口的秘钥不匹配也会导致出现这个问题 ,建议参考这个帖子:[url]https://openclub.alipay.com/read.php?tid=1486&fid=69[/url] 验证公钥正确性,确认一下秘钥时是否匹配。