支付宝 缺少签名参数暂时无法修改签名什么情况

支付宝接口开发提示错误代码 invalid-signature 错误原因: 无效签名
时间: 19:10:34
&&&& 阅读:1208
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&今天做支付宝接口开发,参照官方的实例代码,但是一直提示报错:错误代码 invalid-signature 错误原因: 无效签名
而官方的例子却不报错,经过反复的测试发现,是因为官方代码里参数是通过POST赋值的
$out_trade_no = trim($_POST[‘WIDout_trade_no‘]);//商户订单号,商户网站订单系统中唯一订单号,必填
$subject = trim($_POST[‘WIDsubject‘]);//订单名称,必填
$total_amount = trim($_POST[‘WIDtotal_amount‘]);//付款金额,必填
$body = trim($_POST[‘WIDbody‘]);//商品描述,可空
而我的测试代码里$subject后面直接写的是中文字符串,改成POST赋值后测试正常。
具体什么原因,不太清楚,可能是支付宝接口对中文字符有特殊处理吧。标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!&&&&&&&&&&&&&&&&&&
posts - 29,comments - 5,trackbacks - 0
第一次做支付宝支付,由于不能在线上单独测试,所以只能在外网上建立一个临时的页面接收支付宝异步回调的数据,然后再拿回到本地,修改回调处理接收数据的方式post变成get,拼接一下参数走一下回调,方法很笨。
现在我在外网测试页面用http_build_query函数直接把$_POST数组生成query_string,直接输出query_string,会出现一个有趣的现象,其中的参数&not会被解析成&这个字符,大爷的,请注意这不是支付宝那边返回的数据不正确,而是我这边输出
在浏览器解析出现了问题,后来我手动把&改成&not,最后测试,成功了,签名正确!
其实另外还有一个问题也会造成数字签名不一致,就是需要签名的参数中掺杂了其他参数,如果是url上一定要带上的,记得在签名验证前把不需要签名的参数给过滤掉,这样就没问题了。
阅读(...) 评论()支付宝支付遇到的签名验证问题 - 简书
支付宝支付遇到的签名验证问题
至于支付宝的集成前期的问题可以查看他写的这个我就不多说了。我主要说说我做的时候的坑爹问题,首先我是非常相信支付宝的官方demo的,可是坑爹的是就是因为太相信官方,结果是被坑的血淋漓啊,你下载下来移动支付的demo包
还要 用windows电脑去打开openssl 去自己生成用户的公钥和私钥,和私钥弄成pkcs8格式,具体的你可以看这里第一个链接说签名尽量在服务器,但是我但是我还是在客户端做了签名,管它安全不安全的,都是扯淡。主要是这个当时我做的时候就我自己傻呵呵的去申请了,一个好的后台是多么重要,感觉这个后台做是最好了。反正就是如果你也在客户端坐签名了,那么你们的后台如果是第一次做,然后他还看了官方的文档,安装官方文档搞的,那么签名肯定是不对的。。。也就是烦恼了我和我们后台大神两天半的事情,明明支付成功,但是后台验证不成功,这里我就要说下这个支付宝了,这么大的公司,你就不能花点时间去维护下文档。上面我说了,我们生成了自己的公钥和私钥,但是后台验证的时候竟然就没用到自己生成的用户公钥,而是直接用支付宝的公钥完成验证。。。还有就是我是在客户端做的验证,如果有谁是在服务点做的验证可以教教我。。。1、沙箱环境和正式环境
两个环境请求的地址不一样,注意区别
2、应用证书和支付宝证书
我之前没搞清楚以为是同一个证书,后来发现是不一样的
3、参数多余
比如混入了cookie中的参数
阅读(...) 评论()

我要回帖

更多关于 支付宝签名sign参数 的文章

 

随机推荐