使用beecloud和easychat 做微信H5 微信公众号支付遇到的坑

首先我先来说明微信h5和微信公众号支付的区别
微信H5指的是微信网页端支付。微信公众号支付指的是微信浏览器内发起微信支付,这种支付都是属于微信公众号支付。俩者本质的区别就是H5不需要微信网页授权,但是微信公众号支付需要网页授权。网页授权主要目的是啥,想必小伙伴们已经猜到了,就是获取openid。所以这俩个的区别就在于像微信端发起的时候是否传送一个openid的参数
对了 忘了给你们介绍beecloud 这是一个非常好用的秒支付sdk。可以去百度查询beecloud深入学习下,支持很多种支付方式,非常方便
了解这些区别以后,我们就开始正式的实践项目中。在实践中,我会给大家详细的代码示例,以方便大家更好的上手。

首先是微信H5
https://www.beecloud.cn/doc/这是beecloud的官方开发文档,文档对于支付流程讲的非常清楚,我基本不用补充。我补充的只是官方文档没有给出明确说明的参数。
微信h5就是秒支付button开发
必填参数我就不多做说明

使用beecloud和easychat 做微信H5 微信公众号支付遇到的坑_第1张图片
只说一下这个参数 大眼一看这是个IP地址 但是到底是个什么IP地址 官网并没有说
这就是我要说的坑,这个IP经过我的大量实验我发现这是一个发起支付端的用户IP,
这当时害苦了我。
还有一些选填参数

使用beecloud和easychat 做微信H5 微信公众号支付遇到的坑_第2张图片
但是我发现这根本就是必传参数,因为是网页支付,支付以后就必须有一个回调网页,这个不是beecloud规定的。这是微信那厮规定的,不然就会报商家配置的参数不存在。这当时也害的我,后来没办法,硬着头皮去看了微信的官方文档才发现的
这些参数都传对了,接下俩就交给beecloud处理了。

注意微信H5支付要在微信商户平台里配个微信H5的域名地址。不然没有权限

2.微信公众号
公众号支付在前面已经做了说明比较大的区别就是网页授权
网页授权我们用到另一款非常好用的sdk,就是easychat,说他好用,是因为代码量少,但是论起坑来说,他的文档做的是真的差,唯一的好处就是源码比较简单,看了源码填起坑来比较容易。
https://www.easywechat.com/docs这是官方文档
我们直接打开网页授权
使用beecloud和easychat 做微信H5 微信公众号支付遇到的坑_第3张图片
授权主要用到这个类和方法

在这里插入图片描述在这里插入图片描述
其中就厉害的坑就是
微信授权的过程 是首先你请求微信接口,微信会给你一个code,然后你拿这code再去找微信换取openid,小伙伴们肯定也会发现,这个code难道不需要了吗。当然不是,这个code是至关重要的一环,只是这个文档没有介绍,这就是巨坑的地方,不说了直接上代码
使用beecloud和easychat 做微信H5 微信公众号支付遇到的坑_第4张图片
小伙伴会发现这个code你同样也没用到,只是传了进来。别急 ,我们来看一下源码
使用beecloud和easychat 做微信H5 微信公众号支付遇到的坑_第5张图片
历经千辛万苦,我终于发现,他会用get去接收这个code,并且名字必须是code,换做其他变量就不行。小伙伴们有没有惊呆。所以这就是为啥get方法传进来code
现在openid拿到了,就可以根据beecloud官方文档知道进入支付,把人家要的参数一个不拉的传过去,接下里就没我们啥事了。

注意:公众号和h5一样,也需要去商户平台配置域名,不过公众号配置的是支付地址,也就是你支付的页面文件位置,且要用/结尾,并且只能配置5个。这个一定要记得哦。根据自己的业务合理运用哦

你可能感兴趣的:(使用beecloud和easychat 做微信H5 微信公众号支付遇到的坑)