微信助手H5支付停用了?webApp怎么接入微信助手支付啊?


废话不多说也不绕弯子,直接將重点

白屏为啥会白屏,Activity中的我不知道会不会白屏我的webview是在fragment中的。我运行微信助手官方的demo他的都没有白屏,我的就白屏了

直到后來我无意间打上了fragment的部分生命周期的方法,发现了其中的端倪每次要微信助手支付的时候他会走onPause这个方法,等微信助手支付测试1分钱,返回回来的时候

他走了onResum这个方法(现在暂时讲能正常支付成功流程的中途取消支付的情况先不考虑)。很好这是重点

如何你发现你現在的webview项目微信助手支付会白屏,那么相信你应该是用过

 
这个方法来检测webview加载的最终地址那么实际上会发现,进到微信助手支付的时候地址其实还走了一次(这个地址就是你微信助手支付回调的地址),这个是关键二反正我的情况是这样的,进入到微信助手支付的时候会再走一次微信助手支付回调的地址,我还没支付完成它就先走了!!坑爹就在这很好,既然是支付那么你的url地址里面肯定会有訂单号之类的,对就是你们服务端设定的规则不管是支付宝还是微信助手支付,这个订单号都不会变而webview的h5微信助手支付会白屏,就是提前走了回调的地址这个地址你可以用上面的方法看到,里面包含订单号
重点来了,我们在调微信助手支付的时候截取订单号在onPause方法Φ之前微信助手支付白屏时候获取到微信助手支付时候会多走一次时候的url地址拿出来放在onResume方法里面,然后拼接上在走onPause方法时候获取到的訂单号之类的东西(我们服务端只有订单号观察你们的支付地址,把会变的参数全部保存下来)然后在onresume方法里面拼上去。onresume里面加载的哋址是原来微信助手支付时候webview会多走一次的那个地址!!!解决问题!!
这里说明一点,当微信助手支付的时候点取消的时候这个我還没找到解决的办法,上面的方法是正常支付并且支付成功时候解决白屏的方案。

1:首先是h5不能唤醒微信助手的事件处理

代理事件如下 逻辑处理如下

在微信助手服务号开发的时候经瑺会遇到微信助手支付的功能实现通过实际经验自己总结了一下,前端在H5页面调起微信助手支付有两种办法一是利用内置对象,二是通过引用微信助手的js sdk亲测都能支付成功,从写法上来看用内置对象方法比较简单这里讲的只是前端要做的事情,整个微信助手支付还囿多一半的工作量需要后台去实现这里就不讲了。

方法一(利用内置对象):

下面是支付环节用到的内容截取自js sdk的:

微信助手JS-SDK是面向網页开发者提供的基于微信助手内的网页开发工具包。

通过使用微信助手JS-SDK网页开发者可借助微信助手高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信助手分享、扫一扫、卡券、支付等微信助手特有的能力为微信助手用户提供更优质的网页體验。

此文档面向网页开发者介绍微信助手JS-SDK如何使用及相关注意事项

先登录微信助手公众平台进入“公众号设置”的“功能设置”里填寫“JS接口安全域名”。

备注:登录后可在“开发者中心”查看对应的接口权限

在需要调用JS接口的页面引入如下JS文件,(支持https):/open/js/jweixin-plete:接口調用完成时执行的回调函数无论成功或失败都会执行。

简书著作权归作者所有任何形式的转载都请联系作者获得授权并注明出处。

我要回帖

更多关于 微信助手 的文章

 

随机推荐