PHP支付接口教程,详解微信支付(三)

微信APP支付

接口申请

微信APP支付和其他支付接口最大的不同在于——申请方式
无论是JS支付、PC支付还是WEB支付,都是用通过微信的公众进行申请的,但APP支付却是通过微信开放进行申请的。
开放申请微信支付的流程要比公众更复杂,需要验证的内容更多,还需要认证为开发者,一般来说,申请需要一个星期的时间。
还有更令人头疼的是,公众申请微信支付时需要申请一个商户账号作为收款账号,开放申请支付接口的时候又要再申请一个。也就是说,如果你的项目既有APP又有微信版或者PC版,那么一个项目里面会出现两个微信的收款账号。
很多客户对这个问题简直接受无能,为此特意咨询过腾讯客服,他们表示恩……就是这样的
所以,如果你的项目需要开发微信APP支付,请关注下面几点:

1. 一定要提前一周去申请接口
2. 一定要去微信开放申请
3. 一定要把整个申请流程走完

申请完之后我们需要添加一个移动应用
这里留意一下,其实微信登录微信分享也是在这里申请的。

PHP支付接口教程,详解微信支付(三)
PHP支付接口教程,详解微信支付(三)

微信APP支付需要的参数和JS支付大致相同:

1. APPID——在创建好的移动应用详情中查看
2. APPSECRET——在创建好的移动应用详情中查看
3. MCHID——商户号的ID,注意是和微信开放关联的那个商户号
4. KEY——商户号自己设置的KEY,注意是和微信开放关联的那个商户号的KEY

调试阶段

APP支付的发起是在服务端完成的,APP只是负责调起微信。服务端需要做两件事情:

1. 组合支付参数,请求统一下单接口,生成预支付订单
2. 把预支付订中的信息重新组合,再签好名,传给APP

相比JS支付少了一个获取OPENID的过程,相比PC支付少了一个轮训支付结果的过程,是不是感觉更简单了呢?
那当然是不可能的,APP支付最恐怖的地方在于联调,因为APP请求发起支付如果失败,并不会返回具体的失败原因,往往是直接弹出服务器繁忙,请稍后再试。
你虽然知道有错,但你又只能一遍又一遍的去阅读日志和代码。要知道,只盯着代码看就能把BUG解决的程序员,那可都是高手。如果遇到了,我的解决方式是:仔细的看着官方文档,认真的把代码再重写一遍

在此之前,我给大家的建议是——反复检查参数是否正确
参数是大概率出错的地方。

WEB支付

微信的四种类型的支付方式里面,该注意的事情,已经和大家分享完了。
传送门:
PHP支付接口教程,详解微信支付(一)
PHP支付接口教程,详解微信支付(二)
剩下一个WEB支付,场景是在触屏版使用微信支付。估计是用户体验或者安全性的问题,能申请到这个接口的情况比较少见(我只知道美团有),所以就不单独说它了。希望后面微信会让更多的公司申请WEB支付接口。
它的发起形式是这样的:

https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20160916105028ff2e3214fa0906951107&package=2460852120

也是通过统一下单接口获取预支付订单号,然后点击链接就能打开微信,完成支付,是不是感觉特方便。
写在最后
不得不说,微信家的支付接口集成确实要比其他家来的难,各种官方DEMO也写得比较复杂,但只要静下心来,问题总会解决的。
虽然我觉得微信都是坑,其实也有可能是自己水平不够吧。
如果有问题欢迎留言讨论,希望能对大家有帮助!


以上内容属于作者原创,特此声明,如需转载,请取得同意

上一篇:修改防火墙规则,开放Linux的3306端口,外部访问Mysql数据库


下一篇:PHP 变量转换情况汇总