小程序开发公司

本人目前是小程序开发公司的(蒋经理)1 7 6-8 8 4 1-1 0 2 8.微/电,支持各种行业类型小程序开发。

目前部门的主营项目是一个电商项目,在本人入职之前整个项目系统的主营业务流程已经完备,也已经在正式运营,不过因为各种原因平台主要是在PC端和微信公众号进行运营。小程序其实出来的挺早的,但是优先级对于我们目前的规划来说其实还是很低的。直到17年11月的时候小程序推出了web-view组件,在当时被誉为移动电商的福音。

有了web-view那什么公众号内容、官网、网页有域名的那种直接就可以扔到小程序的webview组件了,极大的减少了开发成本,就是一把梭。

关于小程序

小程序的解释什么的不巴拉巴拉,直接上干货开发文档就不做过多解释微信小程序

关于小程序web-view组件

先奉上传送门小程序 webview相关说明和API使用 官方解释:web-view 组件是一个可以用来承载网页的容器,会自动铺满整个小程序页面。个人类型与海外类型的小程序暂不支持使用。 web-view组件开放时间并不久,所以目前的还是有很多局限性的。
关于webview配置指向的链接的去小程序后台进行配置就好(不配置webview是访问不了的)必须支持https 如图:

示例代码:

做过微信公众号的童鞋应该都知道,在公众号里商家H5页面内调用JSSDK就可以实现微信支付功能。但是看过webview组件的API的文档的童鞋应该知道:webview 里面的网页(公众号迁移的网页)是调用不了外部的微信支付what....... 虽然微信支付也确实是提供了小程序的微信支付API,但是因为我们整个小程序的内容就是一个webview嵌入公众号内容的网页,在网页内下订单的过程中是无法通过webview的api接口通知小程序调起微信支付的。 查看微信支付小程序的支付文档,我们小程序如果要调用微信支付只需要得到以下参数就可以。
如图:小程序调用微信支付参数以及示例代码:看到这些一切就明朗了,在小程序端只要能通过某种方式得到webview内网页下单后的生成的相关参数就能调起微信支付从而实现webview组件内网页微信支付。

实现方式和主要流程

先说明一下整个小程序实现webview调用支付的代码结构如图:

整个结构很清晰、简单,不做过多解释。微信小程序采用的MVVM的模式。
xxxx.wxml类似于安卓activity的xml文件。
xxxx.js类似于安卓中MVC模式的控制层。
xxxx.wxss类似于前端的CSS样式。我们目前几乎没用到,因为只用到了小程序的webview组件。

原理分析

我们来看一下微信小程序支付的的业务流程:

上面已经提到如果需要小程序的webview组件调起微信支付,需要网页内部统一下单得到支付参数,然后通过小程序API调起微信支付,如下:

wx.requestPayment(

{‘timeStamp‘: ‘‘,‘nonceStr‘: ‘‘,‘package‘: ‘‘,‘signType‘: ‘MD5‘,‘paySign‘: ‘‘,‘success‘:function(res){},‘fail‘:function(res){},‘complete‘:function(res){}

})

那么小程序如何得到支付参数呢,查看webview的API文档发现 webview的内部网页可以通过JSSDK的该API 实现webview网页内部控制小程序。
wx.miniProgram.navigateBack 进行小程序页面的跳转比如我们的项目在 index.wxml 的 webview 网页内部使用该API就可以控制小程序从index page 跳转到wxpay page。

具体实现步骤

1 在index.wxml文件添加webview组件,用来装载原公众号里面的网页内容
<web-view src="{{url}}"></web-view>
该url是index.js里面data定义的一个变量``,方便通过index.js的setData方法对webview的网页进行动态加载

2 新建wxpay目录,并新建wxpay的page页面用来处理支付逻辑。(该页面目前是空白的,功能上分析该页面只是为了收到webview网页的支付参数,从用户使用角度上来说该页面是一个支付页面应该需要添加一些用户交互的,比如转圈QAQ)

3 webview网页用户在生成订单后,选择微信支付即走微信的统一下单流程,生成微信支付的参数和sgin。在webview网页内部通过path携带参数跳转到wxpay页面,具体伪代码实现如下(注释很清楚):

//判断是否是在wx小程序环境if(small_wx  && data.resultCode==‘success‘){

//点击微信支付后,调取统一下单接口生成微信小程序支付需要的支付参数

var params = ‘?timestamp=‘+data.jsparams.timeStamp+‘&nonceStr=‘+data.jsparams.nonceStr

+‘&‘+data.jsparams.pkg+‘&signType=‘+data.jsparams.signType

+‘&paySign=‘+data.jsparams.paySign+‘&orderId=‘+data.orderid+‘&pType=0‘;

//定义path 与小程序的支付页面的路径相对应

var path = ‘/pages/wxpay/wxpay‘+params;

//通过JSSDK的api使小程序跳转到指定的小程序页面

wx.miniProgram.navigateTo({url: path});

}

4 小程序端wxpay页面逻辑实现(wxpay.js),webview内的网页通过wx.miniProgram.navigateTo({url: path})携带参数使小程序跳转到wxpay页面。wxpay.js 对url中携带的参数进行处理,然后通过wx.requestPayment调起微信支付并对支付的回调通知进行处理,具体代码实现如下(注释很详细不做过多赘述):

onLoad: function (options) {

var that = this;

//页面加载调取微信支付(原则上应该对options的携带的参数进行校验)

that.requestPayment(options);

},

//根据 obj 的参数请求wx 支付

requestPayment: function (obj) {

//获取options的订单Id

var orderId = obj.orderId;

//调起微信支付

wx.requestPayment({

//相关支付参数

‘timeStamp‘: obj.timestamp,

‘nonceStr‘: obj.nonceStr,

‘package‘: ‘prepay_id=‘ + obj.prepay_id,

‘signType‘: obj.signType,

‘paySign‘: obj.paySign,

//小程序微信支付成功的回调通知

‘success‘: function (res) {

//定义小程序页面集合

var pages = getCurrentPages();

//当前页面 (wxpay page)

var currPage = pages[pages.length - 1];

//上一个页面 (index page)

var prevPage = pages[pages.length - 2];

//通过page.setData方法使index的webview 重新加载url  有点类似于后台刷新页面

//此处有点类似小程序通过加载URL的方式回调通知后端 该订单支付成功。后端逻辑不做赘述。

prevPage.setData({

url: "https://xxxxxxxxxx.com/wx_isPayment.jhtml?orderId=" + orderId  + ‘&ispay=0‘,

}),

//小程序主动返回到上一个页面。即从wxpay page到index page。此时index page的webview已经重新加载了url 了

//微信小程序的page 也有栈的概念navigateBack 相当于页面出栈的操作

wx.navigateBack();

},

//小程序支付失败的回调通知

‘fail‘: function (res) {

console.log("支付失败"),

console.log(res)

var pages=getCurrentPages();

var currPage = pages[pages.length - 1];

var prevPage = pages[pages.length - 2];

console.log("准备修改数据")

prevPage.setData({

url: "https://xxxxxxxxxx/wx_isPayment.jhtml?orderId=" + orderId + ‘&ispay=0‘ ,

}),

console.log("准备结束页面")

wx.navigateBack();

}

})

},

微信支付后的回调通知,当wxpay页面调用navigateBack的时候回到index页面的时候webview 已经加载https://xxxxxxxxxx/wx_isPayment.jhtml?orderId=" + orderId + ‘&ispay=0‘ 这个网页,后台实现相关逻辑。通过orderId查询该订单是否支付成功。如果支付成功就网页重定向到支付成功的页面,如果支付失败还是待支付页面。用户依旧可以点击微信支付按钮进行微信支付。

至此小程序的webview组件内网页就可以实现微信支付了。

小程序开发(蒋经理)1 7 6-8 8 4 1-1 0 2 8.微/电。

原文地址:https://www.cnblogs.com/hoifhwiofh/p/8275641.html

时间: 2024-08-29 11:50:06

小程序开发公司的相关文章

金华兰溪义乌永康东阳微信小程序开发公司 天玑一号旺铺微信小程序

小公司开发自己的微信小程序是非常有必要的,下面上海微信小程序开发公司天玑[一号旺铺]就给大家说说开发自己的微信小程序会给大家带来什么好处.天玑金华.兰溪.义乌.永康.东阳微信小程序开发公司 天玑一号旺铺微信小程序开发报价咨询:http://www.wangpu1.com/全国免费热线:15058525901(微信同号) 小程序一定是基于 Html5+微信原生能力 的产品形态无需下载安装说明跟 App Store 的 APP 是不一样的,小程序是嵌在微信 APP 内的,微信提供标准化入口,当用户订

小程序开发公司,小程序开发看这里

小程序开发公司,小程序开发看这里,分销商城系统开发找梁经理(153微2202电6891),分销商城软件开发,分销商城系统平台. 在网络经济中,由于外界环境的变化极其迅速,推动公司发展的不再是效率,而是高度的适应性.应该把公司看成是有机体,它可以感受环境.适应环境,甚至改变环境.市场环境则是一种选择机制,它可以判定哪种有机体更适合生存.公司可通过下列几种手段来设计自己的组织结构,使之具有高度的适应性. 1.实现订单监控.处理 通过不同的角度,订单添加,物流,支付等各方面对订单进行监控和处理,能有效

装修建材微信小程序开发公司

2018年,互联网开年大戏无疑就是微信小程序上线,激起阵阵浪潮.领先的互联网公司已经开始争先恐后地上线自己的小程序,抢占市场.获取红利.不甘落后.现在的家居建材行业已经进入了新的发展进程,繁荣发展???的电子商务终于把风吹到了建材行业,而移动电商领域是建材行业最为欠缺的方面,因此将建材行业的移动电子商务发展好,有可能获得不错的回报.智能手机是都市人们生活中不可或缺的一部分,没有微信可能会产生不安等情绪,可想而知智能微信对人们的重要性.因此在移动电商的建材行业方面,开发一款建材行业小程序最好不过.

支付宝小程序开发公司

支付宝小程序上线以来,就引起了轰动,很多的支付宝企业用户都想去注册支付宝小程序,因为小程序无需下载安装,功能多样丰富,流量大,体验简单便捷等优点,在当下是非常流行的.对于商家来说,依附支付宝小程序,可以获得不错的流量,也可以降低获客成本,支付宝的小程序正好给商家提供了一个很好的机会.支付宝小程序能够给商家提供有效的数据,通过数据分析,产品受欢迎程度和用户粘性等就一目了然了,还有芝麻信用分,可以评价用户的信用等级,促进转化率,通过小程序,商家不仅可以管理自己的店面运营,还可以管理用户,给商家提供了

今日头条小程序开发公司

今日头条正式发布了小程序,小程序目前只对安卓系统开放,这是继微信.支付宝.百度之后又一家上线小程序的互联网企业,今日头条推出小程序,是希望提供更丰富.更有价值的服务给不同需求的用户.今日头条小程序其实也可以说是抖音小程序,活跃用户量较多.带货能力强.今日头条是一个内容分发平台,创作者与用户建立联系,产生互动.今日头条小程序目前做的人还是比较少的,是最佳的开发制作时机,早一点开发头条小程序就早一点占据头条小程序排名.那么今日头条小程序优势有哪些呢?1.头条最不缺的就是流量,而头条小程序依托流量必将

微信小程序开发类型有哪些?

广州微信小程序开发公司(www.dthulian.com)品向科技表示,随着现在的互联网最热门话题,应该是微信小程序开发.那么我们就和大家来探讨下微信小程序开发类型有哪些? 首先微信小程序是什么? 微信小程序是由微信之父张小龙提出的一个概念,小程序是一种不需要下载安装就可以使用的应用,它实现了触手可及的梦想,用户只需扫一扫或者搜一下就可以打开应用.也体现了用完即走的理念,用户不用关心是否安装太多应用的问题,应用将无处不在,应用将随时可用,但又无需考虑安装及卸载. 对用户来讲,小程序可以实现"用完

广州微信小程序开发

微信小程序想在非常火,正是创业者切入的好时间.微信小程序是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或者搜一下即可打开应用.也体现了"用完即走"的理念,用户不关心是否安装太多应用的问题.应用将无处不在,随时随地可用,但又无需安装卸载,广州本地有哪些靠谱的微信小程序开发公司呢? 如何评判小程序外包开发公司是否靠谱 1.找你信任的.并且对网络行业.对技术有深入了解和开发经营的公司: 2.找个人还是找团队? 优先考虑朋友推荐,一般如果你有

微信小程序开发的入门教程

广州微信小程序开发公司(www.dthulian.com)品向科技,下面跟大家详细介绍微信小程序开发的入门教程: 开发前准备: 注册小程序帐号 绑定开发者 登录微信公众平台小程序,进入用户身份- 开发者,新增绑定开发者. 已认证的小程序可以绑定不多于20个开发者.未认证的小程序可以绑定不多于10个开发者. 获取AppID下载并安装开发者工具 下载完成后,使用管理员或者绑定的开发者微信号扫码登录. 一个微信小程序 创建项目 我们需要通过开发者工具,来完成小程序创建和代码编辑. 开发者工具安装完成后

小程序开发如何实现视频或音频自定义可拖拽进度条

程序原生组件的音频播放时并没有进度条的显示,而此次在我们所接的项目中,鉴于原生的视频进度条样式太丑,产品要求做一个可拖拽的进度条满足需求.视频和音频提供的api大致是相似的,可以根据以下代码修改为与音频相关的进度条.wxml的结构如下: <video id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534