开放平台接口的请求参数分为公共参数和产品参数两部分。各产品接口的公共参数一样,设置appid,编码,签名,异步通知地址(如果产品支持通知) 等。产品参数参考各自接口文档,传入biz_content参数中。
响应内容也分为公共响应和产品响应两部分。公共响应参数包括网关返回码code,签名等信息。产品响应参数为具体的业务接口返回内容。
支付宝开放平台接口采用RSA签名机制保证信息传输的完整性以及发送者身份的真实性。
商户需要自行生成一对开发者公私钥,私钥对发送给支付宝的请求签名,公钥上传到支付宝开放平台。同时取得支付宝公钥,用来对支付宝回复的内容进行验签。
细节请参考:签名专区
部分接口(如支付,转账等)在业务处理成功后会给商户服务器发送异步通知。通知地址为接口请求时设置的公共参数notify_url。
业务结果请以异步通知结果为准,同时辅助使用主动查询接口。
支付宝发送的异步通知,商户需返回输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h);
对于支付产品,商户可能收到交易状态为TRADE_SUCCESS或TRADE_FINISHED的通知。
交易状态TRADE_SUCCESS的通知触发条件是商户签约的产品支持退款功能的前提下,买家付款成功;
交易状态TRADE_FINISHED的通知触发条件是商户签约的产品不支持退款功能的前提下,买家付款成功;或者,商户签约的产品支持退款功能的前提下,交易已经成功并且已经超过可退款期限。
目前签约的基本都是支持退款的支付产品,收到TRADE_FINISHED,通常是因为交易之前成功,到了退款期限(默认支付成功后3个月)。
其他产品的异步通知内容请参考对应接口文档。
当接口同步返回的结果码为UNKNOWN或SYSTEM_ERROR时,可能发生了网络或者系统异常,导致无法判定准确的调用结果。商户不能直接当做业务成功或者失败处理,可以通过相关查询接口来查询最终状态。或者使用相同的请求参数重发请求(幂等性原则)。
如果一直报错,请联系支付宝技术支持进行排查。
具体各产品规范请参考各自接入文档。