php值传递乱码问题,php值传递乱码问题

报错原因

1、密钥不匹配

2、编码格式不统一

3、请求参数数据有误

4、接口调用加签方式和应用上选择的加签方式不对应

5、sdk调用的提交方法有误

6、sdk运行环境有误

排查方案 1、匹配不密钥

(非证书方式请求)检查自己的项目中的私钥和上传的商户公钥是否匹配:详见【如何检验RSA2密钥是否匹配】。

(证书方法请求)检查自己项目中的私钥和使用的商户公钥证书是否匹配:详见【如何检验密钥证书是否匹配】。

2、编码格式不统一

编码格式不统一会导致中文乱码,从而导致请求报错,乱码参数示例 :"subject":"鎮ㄥソ"

兼有有中文字段的参数建议先设置123等数据,避免中文乱码进行测试看是否会报错。

3、请求参数错误

(1)检查必填参数是否传递,可先只传必传参数进行测试是否还会报错;

如果必传参数测试成功,再进行设置选传参数确认是哪个参数导致报错。

(2)不可随意添加转义符;

(3)请求参数中不要进行空传值,或者有空格;

(4)回调地址等携带?id=123这类自定义参数

notify_url或者return_url等携带?id=123这类自定义参数

错误示例:https://您的域名/notify_url.php?id=123&test=abc

注:如果您的请求报错请同时检查您的异步地址是否符合要求 。

4、签名方式错误

根据应用中“接口加签方式”的“选择加签模式”,进行对应的模式签名。

公钥证书和公钥的签名方式不同:

相较普通公钥签名,公钥证书签名多了alipay_root_cert_sn和app_cert_sn参数参与签名。

注:资金类接口(单笔转账到支付宝账户和现金红包)会强制检验接口是否通过公钥证书签名设置,建议如果资金类接口使用公钥方式设置签名,需改成公钥证书模式。

5、sdk调用的提交方法有误

该点错误正常是公钥证书方式做提交才会有此以下原因.

检查公钥证书的response请求方式是否正确:

(1)java语言response的execute()方法需改成certificateExecute();

(2)PHP语言response的execute()方法仍然使用execute();

(3).Net语言response的execute()方法需改成CertificateExecute();

注:公钥证书和普通公钥的pageExecute和sdkExecute调用方法一致,未改变,详见【RSA2和公钥证书签名验签的区别】。

6、检查sdk运行环境

核实各开发语言sdk运行环境是否符合sdk要求

注:.NET开发语言请注意在自查上述问题,没有发现问题,请更新官方最新sdk在重新测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值