更新时间:2023-12-15 14:05:49收藏我的文档设置返回文档背景在接口开发测试时,支付宝会返回异步通知、同步通知以及同步响应参数,需注意同步通知不等于同步响应参数。同步通知一般是类似于电脑网站支付成功后,前端同步页面跳转返回的同步通知,同步通知验签流程与异步验签一致。同步响应参数一般是类似于当面付调用后直接 response 返回的响应参数。如果是使用 sdk 签名验签的,同步响应参数已经在初始化的代码中封装了验签流程,如果验签失败是会返回类似 check sign fail!的报错信息。如果是自签名返回数据,需要自己对同步响应参数进行验签,自己写的代码中无法验签成功,可以通过支付宝开放平台开发助手、签名验签等工具结合验签了解。 获取验签通知获取通知同步响应参数的获取必须通过签名请求后,支付宝返回输出。如果是 sdk 封装签名,打印输出示例(当面付扫码为例):打印示例打印同步响应参数示例: 获取支付宝公钥工具中验签,需要设置支付宝公钥,因此有 2 种方式可以获取到支付宝公钥信息。获取支付宝公钥数据获取支付宝公钥流程获取支付宝公钥详见 如何获取支付宝公钥。注:如果在接口的加签方式中设置的是公钥证书,需要使用公钥证书的方式签名,因此下载的是支付宝公钥证书,而不是支付宝公钥数据。由于工具验签中设置的是数据信息,因此需要将支付宝公钥证书解析出支付宝公钥数据,详见 支付宝公钥证书如何解析成支付宝公钥。 工具读取支付宝公钥数据目前工具上只支持搜索应用名称,不支持搜索应用的 appid。此功能仅支持支付宝同步响应参数做验签,请勿对其他报文做验签。 验签将第一步打印的验签数据放在 返回内容 中。根据请求签名时设置的 sign_type 和 charset 选择对应的签名方式和字符集。 注意事项●代码中进行同步响应参数验签详见各开发语言对应的同步响应数据验签。○普通公钥签名:详见 普通公钥签名。○公钥证书签名:详见 公钥证书签名。 ●代码验签失败,工具也验签失败,建议检查:○检查支付宝公钥的获取是否正确,可结合获取支付宝公钥中的 2 种方式对比数据是否一致。○检查签名方式和字符集必须和签名时设置的 sign_type 和 charset 一致。○工具中设置的 返回内容 是否为打印数据原封不动的信息,哪怕缺少了“\\”也会报错。如果不一致,说明在输出数据时被转义。 ●代码验签失败,工具验签成功,建议详见 。○代码验签只要获取待验签数据的 json 信息,如 alipay_trade_precreate_response 等信息是不参与验签的,但是包含 json 首尾的 { 和 } 两个大括号,双引号也需要参与验签。○如果字符串中包含 http:// 的正斜杠,需要先将正斜杠做转义。当验签不通过时将正斜杠转义一次后再做一次验签等。如返回的响应参数中已带有反斜杠,转义处理,需使用两个反斜杠进行标记,如扫码支付返回参数信息。