微信小程序开发webview组件中的网页实现微信原生支付
小程序开发
浏览:1152 次

前言、背景
我现在的工作是安卓工程师。在此之前,我对前端和后端的知识基本上是空白的,但我只在日常工作项目中需要与很多人交流时才与他们见面。请更正一些关于前端和后端的专业描述和理解。
目前,该部门的主要项目是一个电子商务项目。在我加入公司之前,整个项目系统的主要业务流程已经完成并正式运营。但由于种种原因,该平台主要在PC端和微信公众号上运营。小程序很早就推出了,但对于我们目前的计划来说,优先级仍然很低。直到2017年11月,小程序才推出了网络视图组件,这在当时被称为移动电子商务的福音&;&;&;$$$。。。这里省略了五千字。
有了webview,公众号内容、官方网站和带有域名的网页可以直接扔进小程序的webview组件,大大降低了开发成本,这是一个穿梭机。。。。
关于小程序
小程序的解释不是巴拉巴拉,但干货开发文档没有解释太多
关于小程序web视图组件
首先交付门户
官方解释:web视图组件是一个可以用来承载网页的容器。它将自动填充整个小程序页面。个人和海外小程序暂时不受支持。
web视图组件打开的时间不长,因此仍有许多限制。
最好在小程序后台配置webview指向的链接(如果不配置webview,则无法访问)。必须支持https,如图所示:
Applet wevview服务器域名配置
示例代码:
示例代码
做过微信公众号的童鞋应该知道,微信支付的功能可以通过在公众号的商家H5页面中调用JSSDK来实现。但是看过webview组件API文档的童鞋应该知道,webview中的网页(从公众号迁移的网页)不能称外部微信支付为什么……虽然微信支付确实提供了小程序的微信支付API,但我们整个小程序的内容是嵌入在公众号内容中的网页,在网页下单过程中,无法通过webview的api接口通知小程序调用微信支付。查看微信支付小程序的支付文档。如果我们的小程序想要调用微信支付,只需要获得以下参数。
如图所示:小程序调用微信支付参数

小程序调用微信支付参数
和示例代码
示例代码
当我们看到所有这些事情时,一切都会很清楚。只要我们能够以某种方式在webview页面中获取订单下单后生成的相关参数,我们就可以调用微信支付来实现webview组件中的微信支付。
实施方法及主要流程
首先,说明整个小程序实现webview呼叫支付的代码结构,如图所示:
项目代码结构
整个结构清晰而简单,没有过多的解释。微信小程序采用的MVVM模式。
Xxxx.wxml类似于Android活动的xml文件。
Xxxx.js类似于Android中MVC模式的控制层。
xxxx。Wxss类似于前端的CSS样式。我们目前几乎不使用它,因为我们只使用applet的webview组件。
原理分析
我们来看看微信小程序支付的业务流程:
付款流程顺序图
上面已经提到,如果您需要小程序的webview组件调用微信支付,您需要在内部下单以获取支付参数,然后通过小程序API调用微信付款,如下所示:
wx.请求付款(

{
“timeStamp”:“”,
“nonceStr”:“”,
“包”:“”,
“signType”:“MD5”,
'paySign':'',
“成功”:函数(res){},
“fail”:函数(res){},
“完成”:函数(res){}
})
那么小程序如何获取支付参数?查看webview的API文档,发现webview内部网页可以通过JSSDK的API实现webview网页的内控小程序。
wx.miniProgram.navigateBack跳转到小程序页面。例如,我们的项目在索引中。wxml的webview页面在内部使用此API来控制小程序从索引页面跳转到wxpay页面。
具体实施步骤
在index.wxml文件中添加webview组件以加载原始公众号中的网页内容
此url是由index.js中的数据定义的变量“”,w