微信小程序的充值流程与 H5 或 公众号大致差不多,这里简单说一下前端在充值时候的一些操作流程。

用户在小程序中发起充值请求时,一般会先请求自己的服务器,将充值的参数发送给后端,然后后端会去请求微信充值,得到微信返回的统一下单的参数再返回给前端。前端调用

wx.requestPayment API 即可唤起微信小程序的支付页面,此时用户输入正确的支付密码即可支付成功。具体流程如下:
 
1. 比如说页面上有一个充值按钮,点击充值按钮时可以获取到用户请求充值的参数。  
wx.request({
  url: "后端的充值接口",
method: "POST",
dataType: "json",
header: {
'content-type': 'application/x-www-form-urlencoded'
},
data: {
amount: amount, // 充值金额
token: token,
openId: openId
},
success: function (res) {
if (res.data.code == '1') {
that.setData({
payParams: res.data.data // 后端从微信得到的统一下单的参数
})
that.xcxPay(); // 拿到统一下单的参数后唤起微信支付页面
}
}
})

2. 调用 wx.requestPayment 唤起微信支付界面。

wx.requestPayment({
  'timeStamp': that.data.payParams.timestamp.toString(), // 时间戳必须是字符串,否则会报错
'nonceStr': that.data.payParams.str,
'package': 'prepay_id=' + that.data.payParams.prepay_id, // 这里的值必须是 prepay_id=XXXXXXXXX 的格式,否则也会报错
'signType': 'MD5',
'paySign': that.data.payParams.sign,
'success': function (res) {
    // 这里应该是 res.errMsg , 跟公众号的支付返回的参数不一样,公众号是 err_msg, 就因为没注意到这个,折腾了很长时间
  if(res.errMsg == "requestPayment:ok"){ // 调用支付成功
  wx.redirectTo({
url: '../chargelist/chargelist' // 充值成功后的处理,可以跳转,也可以根据自己的需要做其他处理
})
}else if(res.errMsg == 'requestPayment:cancel'){
      // 用户取消支付的操作
    }
},
'fail': function (res) {
  return false;
},
'complete': function (res) { }
})

微信小程序充值及充值回调后的处理的更多相关文章

  1. SpringBoot2.0微信小程序支付多次回调问题

    SpringBoot2.0微信小程序支付多次回调问题 WxJava - 微信开发 Java SDK(开发工具包); 支持包括微信支付.开放平台.公众号.企业微信/企业号.小程序等微信功能的后端开发. ...

  2. 直击根源:微信小程序中web-view再次刷新后页面需要退两次

    背景 在上一章(直击根源:vue项目微信小程序页面跳转web-view不刷新)解决了vue在小程序回退不刷新的问题之后,会引出了一个刷新的页面需要点击返回两次才能返回上一个页面 问题描述 在A页面从B ...

  3. 解决微信小程序使用switchTab跳转后页面不刷新的问题

    wx.switchTab({ url: '../index/index', success: function(e) { var page = getCurrentPages().pop(); if ...

  4. 微信小程序调用地图选取位置后返回信息

    先看一下wxml的代码,绑定个事件! <view class='carpool_data_all'> <view class='aa'> <text>*出发地< ...

  5. promise解决微信小程序中的request回调地狱

    //使用 request(url,methods ,data).then(res => { //服务器返回数据 console.log(res ); return request(url,met ...

  6. 微信小程序 和 laravel8 实现搜索后分页 加载

    Page({ /** * 页面的初始数据 */ data: { activity:{}, page:1, last_page : 0, keyword:'' }, //加载 scroll(e){ le ...

  7. 微信小程序踩坑集合

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...

  8. 微信小程序实现多选分享

    微信小程序拉取好友列表后,默认只能选一个分享,现在在分享回调onShareAppMessage里加上这段代码,拉取好友列表时,右上角会出现多选按钮,这样就解决了微信小程序安卓下只能单选分享的问题. / ...

  9. 微信小程序60秒倒计时

    微信小程序发送短信验证码后60秒倒计时功能,效果图: 完整代码 index.wxml <!--index.wxml--> <view class="container&qu ...

  10. WordPress版微信小程序安装使用说明

    昨天在群里,有刚刚使用WordPress版微信小程序朋友,在问安装过程中的问题,这些问题是经常被问到,这至少说明两个问题: 1.我开发的程序安装和使用不够简易,无法通过简单的配置就可以使用,特别是如果 ...

随机推荐

  1. Sharepoint 2013 - 直接显示Doclib中的html page

    缺省的HTML不能直接显示,会被要求存盘.以下操作可以修改 Go to Central Administration Select Manage web applications Select the ...

  2. spark-submit提交参数设置

    /apps/app/spark-1.6.1-bin-hadoop2.6/bin/spark-submit --class com.zdhy.zoc2.sparksql.core.JavaSparkSq ...

  3. lambda 形参:返回值 lambda 匿名函数 格式:

    lambda 匿名函数 格式: lambda 形参:返回值 e.g f = lambda n:n**2 print(f(10))

  4. .NET Core 控制台项目中的Nuget打包类库及引用

    由于使用的是MAC版本的VSCode,所以全部是通过dotnet命令来完成的. 1.dotnet new lib 创建类库项目: 2.编辑项目根目录下的.csproj文件,添加版本号(建议): < ...

  5. UVa 1642 - Magical GCD(数论)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  6. Odoo作为后端时如何返回数据给webapp、移动端app

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9307315.html  使用jinja2渲染的页面,可以直接在调用template.render()时传递参数 ...

  7. windows7使用Sphinx+PHP+MySQL详细介绍

    安装(Windows) 1.官方下载 Sphinx下载地址: 下载 2.解压并重命名 此处下载版本为3.0.3,将 sphinx 文件夹命名为sphinx 3.文件夹目录介绍 sphinx --api ...

  8. Spring源码分析(六)解析和注册BeanDefinitions

    摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 当把文件转换为Document后,接下来的提取及注册bean就是我们的重 ...

  9. socket编程小问题:地址已经被使用——Address already in use

    很多socket编程的初学者可能会遇到这样的问题:如果先ctrl+c结束服务器端程序的话,再次启动服务器就会出现Address already in use这个错误,或者你的程序在正常关闭服务器端so ...

  10. 0CO_PC_ACT_10 不能提取NV类别的数据

    今天用 BW 标准数据源 0CO_PC_ACT_10 提取数据时,发现物料有一项数据[没有被分摊]无法取到. 根据SAP的解释,此项不在后台存数,通过前台动态生成. For the virtual c ...