[PHP]微信红包接口实践说明CA证书出错签名异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[PHP]微信红包接口实践说明CA证书出错签名异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1800字,纯文字阅读大概需要3分钟。
内容图文
![[PHP]微信红包接口实践说明CA证书出错签名异常](/upload/InfoBanner/zyjiaocheng/225/58da18d5ead749198f2649c9d6852163.jpg)
1. 在微信支付的商户平台,在[API安全]中下载API证书,将下载的证书(apiclient
_cert.pem/apiclient_key.pem/roota.pem)放在服务器上,确定并记录存放路径(2中会用);
?
2. 在php的curl中增加如下设置,其中CURLOPT_SSLCERT/ CURLOPT_SSLKEY/ CURLOPT_CAINFO的中设置路径分别对应1中的三个pem文件:
//因为微信红包在使用过程中需要验证服务器和域名,故需要设置下面两行curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 只信任CA颁布的证书 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 检查证书中是否设置域名,并且是否与提供的主机名匹配curl_setopt($ch,CURLOPT_SSLCERT,'/xxx/xxx /apiclient_cert.pem');curl_setopt($ch,CURLOPT_SSLKEY,'/xxx/xxx/apiclient_key.pem'); curl_setopt($ch, CURLOPT_CAINFO, '/xxx/xxx/rootca.pem'); // CA根证书(用来验证的网站证书是否是CA颁布)
(curl设置摘自:http://www.cnblogs.com/kangjin0828/p/4517657.html)
3. 借助于微信平台提供的签名接口调试工具:https://pay.weixin.qq.com/wiki/tools/signverify/进行签名的调试,可以根据红包接口自定义参数,需要注意的是,接口里部分参数会是中文,在验证签名步骤是否正确时,最好都设置为英文或数字,确保签名通过后再设置为中文:
?
4. 签名步骤验证通过后,将中文参数设置进去,进行测试,微信红包接口中,中文的编码方式为utf-8,如果确定编码方式已经是utf-8,则不需要encode;
?
5. 在调试过程中,常见错误就是“CA证书出错”和 “签名错误”,解决方式如下:
?
CA证书出错
说明没有设置CA证书或者在curl设置时路径有问题;
?
签名错误
原因一:md5前没有按照接口要求整理数据,如:
key在md5时没有没有按规则排列,在联合密钥key时,要注意整理成: XX&$key=XXX;
原因二:key值要取商户API密钥,如果是首次使用的话,虽然说默认是商户号,但是还是要重新设置一下,这里简单一句,实际调试的时候就是因为这个原因,花了大半天工夫 …(⊙_⊙;)…
?
?
在调试过程中,遇到相同的问题,到网上搜搜,虽然搜到的很多都只是只字片语,但还是会给自己一些启发,希望上述总结能对后来的亲有帮助( *^_^* )
内容总结
以上是互联网集市为您收集整理的[PHP]微信红包接口实践说明CA证书出错签名异常全部内容,希望文章能够帮你解决[PHP]微信红包接口实践说明CA证书出错签名异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。