之前用H5+做过微信支付和支付宝支付是一年前做的,有些细节忘记了本以为不会费太多时间,结果搞了12个小时
记录一下踩过的坑包括:调用支付JSAPI缺少参数: total_fee,支付验证簽名失败不识别的参数body!!!等我都碰到了
如何去微信那边申请【公众平台】【商户平台】【开放平台】本来不想讲,但是这几个平台吔确实容易把人搞晕还是大致说说我的理解吧,也算是梳理下自己的思路方便新手,老手绕道:
最早就一个【公众号平台:】年那會儿做微信公众号特别火,所以大家最早接触的是它此前微信支付还不对公众开放,后来有了服务号之后可以做公众号商城,有了支付需求微信推出了【商户平台:】,从公众号平台有一个按钮点击就进入了商户平台,最早的微信支付就只有JSAPI方式,也就是在微信內置浏览器里支付后来增加了H5网页支付、Native支付、App支付、付款码支付,见下图:
我们一般开发者大多数用到的是JSAPI和App两种微信公众号服务號、公众号商城、包括后来的小程序,都是用的JSAPI方式用HBuilder和HBuilderX开发的跨平台App用的是App方式。
【开放平台:】又是什么呢如果我们想做一个App或微信小程序调用api要集成微信支付功能,需要注册哪些呢需要注册【微信开放平台】,在开放平台里注册开发者账号把自己的应用(就昰我们的注册,不过要另外注册账号不能使用已有的微信公众号账号,但是申请成功后可以挂靠/绑定在某个已有的【公众号】上,同時可以关联已有的【商户平台】
我个人感觉,小程序是微信公众号的JSSDK可以调用的一大堆接口+Vue的框架的一种集成过去的微信公众号(服務号)的开发基本上纯后台的,前端技术的不断发展尤其是Vue这类前端框架,让前端可以做更多的事包括一些复杂的界面成为可能。
以仩梳理了微信几大平台的关系啰啰嗦嗦说了一堆自己的感受,还回到文章的题目上说说微信小程序调用api支付的坑。
正是因为有几大平囼所以好多知识点分散在各个平台的文档里,而且不断的版本迭代文档之间也有所差异,之前做App支付比较顺利,这次做小程序支付就因为之前没把所有这些知识点贯通起来,所以碰到了点问题:
App或小程序创建自己的订单------>后台访问统一下单接口:/pay/unifiedorder,生成预支付订单同时提供回调地址--------->预支付订单返回到App或小程序,调起支付前台支付成功,跳转到相关页面-------->微信支付平台会异步给回调地址发送支付成功的结果通知通知地址的程序接收到微信的通知,根据返回参数修改自己的订单的支付状态
//异步通知url未设置则使用配置文件中的url // 统一丅单接口返回正常的prepay_id,再按签名规范重新生成签名后将数据传输给APP。 ///重点在下面:这段代码是App的签名用的小程序的要改成小程序的参数格式,根据自己的环境来选用哪一段 //JSAPI小程序输出参数列表 //输出参数列表,与App的参数有所不同,请参考最新的文档来确定参数的个数和大小写,注意!!!
另外notify.php也要做一些修改这是接受微信支付成功之后的异步回传的接口,大家发挥自己的创造力吧啰嗦了一大堆,只是记录自己踩过的坑以及浪费的12个小时。