支付宝手机接口,服务端PHP验证失败,求助
16lz
2021-01-22
最近做支付宝手机接口郁闷死了求大神们帮忙~!
问题1:手机端安卓自然是JAVA,而服务端是PHP,在做支付宝异步验证notify_url的时候,按照支付宝的demo来操作验证失败,用日志做调查后发现传过来的$_POST['sign']验证参数在base64_decode时,返回的竟然是乱码,这里就疑问,难道在JAVA端用BASE64加密后在PHP端解密不能?求解~!
问题2:在服务器PHP端验证要用到3个PEM文件,3个文件的格式到底是啥,我问了支付宝技术支持,一个人说,用支付宝提供的软件生成的rsa_private_key.pem和rsa_public_key.pem是否不用去掉头和尾,直接替换掉key文件夹下的2个同名文件?还是要去掉头和尾空格与换行直接留一行字符串?(这部分按照文档的写了照样不通过,才来问的~!)
问题3:最后一个pem文件alipay_public_key看文档说是按照上传的公钥,复制下来后去换行和空格,但是当openssl验证文件载入之后openssl_get_publickey返回的竟然为空,这个真心纠结了,然后我又尝试用原文件rsa_public_key改成openssl_get_publickey这时候返回提示Resourceid#20或者Resourceid#21
网上查的要死也没找到这2个提示啥意思!
求各位大师指点~!~!
既不懂java也没支付宝编程经验的多嘴一句——
会不会是字节型数据的问题?
php处理这个要小心,因为php对字节和字串是混合的
如果不是这个问题就再等有相关经验的人的答案吧
问题1:手机端安卓自然是JAVA,而服务端是PHP,在做支付宝异步验证notify_url的时候,按照支付宝的demo来操作验证失败,用日志做调查后发现传过来的$_POST['sign']验证参数在base64_decode时,返回的竟然是乱码,这里就疑问,难道在JAVA端用BASE64加密后在PHP端解密不能?求解~!
问题2:在服务器PHP端验证要用到3个PEM文件,3个文件的格式到底是啥,我问了支付宝技术支持,一个人说,用支付宝提供的软件生成的rsa_private_key.pem和rsa_public_key.pem是否不用去掉头和尾,直接替换掉key文件夹下的2个同名文件?还是要去掉头和尾空格与换行直接留一行字符串?(这部分按照文档的写了照样不通过,才来问的~!)
问题3:最后一个pem文件alipay_public_key看文档说是按照上传的公钥,复制下来后去换行和空格,但是当openssl验证文件载入之后openssl_get_publickey返回的竟然为空,这个真心纠结了,然后我又尝试用原文件rsa_public_key改成openssl_get_publickey这时候返回提示Resourceid#20或者Resourceid#21
网上查的要死也没找到这2个提示啥意思!
求各位大师指点~!~!
17 个解决方案
#1
既不懂java也没支付宝编程经验的多嘴一句——
会不会是字节型数据的问题?
php处理这个要小心,因为php对字节和字串是混合的
如果不是这个问题就再等有相关经验的人的答案吧
更多相关文章
- thinkPHP5下扩展encryptedData解密算法文件的注意事项
- 如何加载json文件?
- 使用AJAX将数据发送到.php文件,如何从中获取数据?
- 使用javascript将文件输入到php文件
- 迭代文件夹中的CSV文件,并使用PHP将数据加载到MySQL中
- 用于cdn集成的文件类型的域更改正则表达式
- PHP基础 文件流
- 教你如何利用php.exe运行php文件
- Laravel尝试在根文件夹中存储缓存文件