由于最新版本的支付宝手机网站快捷支付更新,所以,签约的账号只能使用证书方式来调用
那问题来了
支付宝证书,里面只能用证书的name与序列号来生成SN来进行签名与验签
支付宝坑爹的只有JAVA写了SDK。。。。。其他的只能使用自签名方式
而自签名方式,就必须搭配生成的SN。。。我那个去。。。这个SN是啥玩意,在网上找了相关的教材,也去开放平台找了,只说参考JAVASDK的getsn接口
这个坑啊,我如果会JAVA,我还用个啥子PHP哟。。。。还好,有大神在8月30号那天用PHP写了一个获取SN的程序,这才解决了我的问题,要不。。。。那不晓得搞到什么时候去。。。。
得到SN之后,因为从来没有做过支付宝的开发,所以,还是绕了很多弯路
但有一点要说明的就是,利用证书来签名,有几点必须要做到
第一,CONFIG.PHP里面的字段必须要填写,要么你就把验证去掉,否则,会出错
第二,获取反馈数据时,AlipayTradeService下的aopclientRequestExecute函数里面有一个ECHO一定要注释掉,否则,不可能跳得过去。
第三,在调用pageExecute要将POST改成GET,否则,它默认就是POST,一定要大写
第四,pageExecute里面的拼接GET请求串时,一定要进行URLENCODE,如下
这个时候,基本上就OK了,然后愉快的跳转吧,但十有八九,会出现参数错误 ,什么原因呢
你必须要做一件事。。。
时间必须要减个几十秒,我减了一分钟,否则,肯定会报错,当然,我也不知道问题是不是出现在这里,反正我减了之后,就成功了。。。。
这就是我搞了几天才搞好的微信公众号调用支付宝遇到的坑,希望对你们有帮助。。。