这个问题困扰我几天了。
由于开始没有注意到无线产品用MD5签名方式也可以。
我开始就是用MD5签名方式支付,支付宝那边一直显示参数为空,所以以为一定要用RSA签名方式。
所以一直就停留在一个函数执行不了。
显示错误为:Fatal error: Call to undefined function openssl_get_privatekey() in。
php错误日志为:PHP Warning: PHP Startup: Unable to load dynamic library ‘D:/php/php5/ext/php_openssl.dll’。
这个错误一直困扰了我两天,到现在还没解决,
后台又重新试MD5签名方式。
开始一个一个排查,在提交到支付宝的时候迅速esc停止,然后查看源代码,发现token为空。
意思就是没有请求到token码。
然后在请求返回token码的地方,直接输出返回的内容。
print_r( $para_html_text); echo '<br/><br/>'; echo $req_data;
发现是支付宝返回的错误是“req_data没有按照格式要求填写”,所以没获取到token。
然后我又把req_data显示出来。好像也没什么错误。
在网上查了后,发现了问题。原来notify_url,call_back_url,merchant_url这三个url不能带传递参数的符号&。
因为这样会支付宝会以为传了很多参数给他,所以就格式不对。
真是坑人。
正常返回的内容:
最后就剩下rsa签名方式没弄好了。希望有高手解答。