PHP开发之微信公众号中进行支付宝支付

袁小威 2018-11-20 265人围观
简介想必很多人都有过要在微信公众号中进行支付宝支付的经历,但是微信又屏蔽了阿里系所有的东西,网上百度了很多,都没有完整的解决方案,可谓万坑丛中过啊。刚刚踩完坑的袁小威就迫不及待的分享给大家咯。

        切入正题,其实支付宝官方就微信公众号中使用支付宝支付是给出了解决方案的【微信公众平台无法使用支付宝收付款的解决方案】,有DEMO可供下载下载参考,因此,袁小威基于官方提供的DEMO来实现了微信公众号中进行支付宝支付。

        调用支付宝手机网站支付服务端SDK部分可以下载官方DEMO来实现【各语言服务端SDK】,首先在支付配置文件config.php里配置好自己的参数,然后创建支付类:alipayMobile.class.php,调用手机网站支付接口,话不多说,直接上代码:

        注:这里有一个坑需要注意,在官方SDK的wappay/service/AlipayTradeService.phpaopclientRequestExecute方法中,有一个echo  $result操作,这个操作是在你调用支付接口后直接跳转支付宝方的支付页的,这对我们后面做微信公众号中支付宝支付是一个大坑(亲测),一定要注释掉这一行代码哟!

        然后就是支付请求getPay方法了(此处分享已经去掉接口验证等系列代码逻辑):

        Ok,接下来本次分享的重点来了哟,前端接收到返回的数据后,需要做一些小处理,这里刚刚下载的官方的解决方案DEMO就该起作用了:

        首先要在页面里引入js文件:ap.js

        其次,要将pay.htm文件放到项目目录下(文件中引入ap.js文件的路径要确认是否正确,以及最后执行_AP.decode返回错误里pay.htm#error要写pay.htm的访问url,如:http://examp.com/mobile/pay/pay.htm#error);

        然后,在支付请求成功后对接收到的数据进行处理:

        注:支付发起页pay.htm页面一定要引入ap.js以及确保路径正确,不然不会成功。

        至此,我们可以愉快的在微信公众号中进行支付宝支付了。 

 

        好了,一点点菜鸟心得,有不当之处欢迎留言指证交流,一起成长,喵,就是这样!