错误原因:
1.密钥不匹配
2.编码格式不统一
3.请求参数中有空格,转义符,特殊字符(基本上会出现在biz_content中)
4. notify_url不能加?id=123这类自定义参数 错误示例:https://您的域名/notify_url.php?id=123&test=abc 注:如果您的请求报错请同时检查您的异步地址是否符合要求
5..NET开发语言请注意在自查上述问题,没有发现问题,请更新官方最新sdk在重新测试。
官方最新.NET sdk下载地址:https://docs.open.alipay.com/54/103419/
检查流程
第一步(重点检查),检查自己的项目中的私钥和上传的商户公钥是否匹配,建议使用这个帖子自查【点击查看】
第二步:检查项目编码和请求的编码是否统一,不统一导致中文乱码,从而导致请求报错 乱码参数示例 :"subject\":\"鎮ㄥソ\"
第三步:检查请求参数
错误参数示例(有空格):在 subject\":\"您好 \ 后面有一个空格
app_id=2015052600090779&biz_content={\"out_trade_no\":\"20250320010101001 \",\"total_amount\":\"88.88\",\"subject\":\"您好 \",\"body\":\"Iphone616G\",\"timeout_express\":\"90m\"}&charset=utf-8&method=alipay.trade.precreate&sign_type=RSA2×tamp=2017-08-25 08:08:08&version=1.0"}
错误示例(转义符) :在out_trade_no\":\\\"20250320010101001\\\" 拼接参数有误导致
app_id=2015052600090779&biz_content={\"out_trade_no\":\\\"20250320010101001\\\",\"total_amount\":\"88.88\",\"subject\":\"您好\",\"body\":\"Iphone616G\",\"timeout_express\":\"90m\"}&charset=utf-8&method=alipay.trade.precreate&sign_type=RSA2×tamp=2017-08-25 08:08:08&version=1.0"}
建议:如果有官方demo可以使用官方demo测试。只配置账号和密钥进行请求,先保证demo可以正常请求,然后在往项目中集成 相关接口测试帖子可以参考该帖:【点击查看】
如果上面方案走了还是报同样的错按照下面方式提供一下(信息不完整不回复)
正确的提问方式:测试环境(沙箱&正式)+请求参数+appid
如果大家有什么疑问,可以在帖子下方追问吐槽