为方便微信小程序的开发,与维护的便捷性,开始研究使用云开发实现微信支付的方法,省掉了租赁服务器与后台开发的成本。值得开心的是云开发已经支持了微信支付。

微信支付的准备条件

官方文档说明,微信支付要实现的前提条件是:

  • 1、微信开发者工具 Nightly 版 1.02.2005111 及更新的版本
  • 2、需要已经开通了微信支付(目前只有企业法人经过认证才能开通;),且已绑定了商户号的小程序。具体开通方法参见微信支付官方文档

开通方法

(1)在微信开发者工具中,使用绑定的微信小程序账号,打开云开发控制台,在云开发控制台中的 设置 - 其他设置 中添加商户号

(2)添加后,需要在绑定的商户号管理员在微信支付提供的【服务商助手】小程序上确认授权。
如果需要 jsapi 和 api 退款权限,需要前往微信支付商户平台我的授权产品中进行确认授权,完成授权后即可调用微信支付相关接口能力。

微信支付流程说明

用微信支付云调用来实现完整的支付功能,大体上会经过以下4个步骤(后面在代码的写法上有些步骤会整合到一起):

1、用户在小程序端点击支付时使用wx.cloud.callFunction调用云函数(比如云函数名为pay),并将商品名称、商品价格等信息传递给pay云函数;2、在pay云函数中调用统一下单接口CloudPay.unifiedOrder(),参数包括接收的商品信息、云函数环境id,以及需要填写结果通知回调函数(比如函数名为paynotice)用来接收异步支付结果;pay云函数会返回的成功结果对象中会包含payment字段;3、在小程序端wx.cloud.callFunction的success回调函数(也就是拿到云函数返回的对象)里调用wx.requestPayment接口发起支付,而从pay云函数返回的payment对象(字段)就包含这个接口所需要的所有信息(参数);这时会弹出微信支付的界面;4、用户在小程序端支付成功,paynotice就会接受到异步的支付结果,我们可以在paynotice云函数里进行发送订阅消息以及将支付成功的信息更新到数据库等操作

支付的简单实现

我们可以在小程序的wxml页面比如pay.wxml页面,点击某个button组件时,通过事件处理函数比如callPay,来调用pay云函数,代码如下:

<button bindtap ="callPay">发起支付</button>

云函数

const cloud = require('wx-server-sdk')
cloud.init({  env: cloud.DYNAMIC_CURRENT_ENV
})exports.main = async (event, context) => {  const res = await cloud.cloudPay.unifiedOrder({    "body": "微信支付",    "outTradeNo" : "122775224070323234368128", //订单号,不能重复,这个可以根据时间生成 "spbillCreateIp" : "127.0.0.1", //就是这个值不用改    "subMchId" : "1520057521",  //你的商户ID或子商户ID    "totalFee" : 100,  //单位为分    "envId": "",  //你的云开发环境ID,注意不是环境名称    "functionName": "paysuc",  // 支付成功的回调云函数,这个函数可以处理支付成功之后的事情"nonceStr":"F8B31E62AD42045DFB4F2",  //随便写的32位字符串,建议自己生成    "tradeType":"JSAPI"   //默认是JSAPI  })  return res
}

调用云函数

callPay(){  wx.cloud.callFunction({    name: 'pay',  //云函数的名称    success: res => {      console.log(res)      const payment = res.result.payment   // payment包含了支付需要的所有参数   wx.requestPayment({        ...payment,        success (res) {          console.log('支付成功', res)},        fail (err) {          console.error('支付失败', err)         }      })    },    fail: console.error})
},

使用云开发实现微信支付的具体方法相关推荐

  1. 微信小程序使用云开发实现微信支付功能 报错Error: 签名错误,史上最全解决办法,不服留言骂我

    报错背景 微信小程序使用云开发实现微信支付功能,但是报错了 报错信息 报错原因 小程序想要使用微信支付,必须满足下面几个条件的 1,必须是非个人小程序(个人小程序用不了支付) 企业小程序需要认证! 2 ...

  2. 小程序云开发实现微信支付,不需要搭建服务器

    一.开发微信支付功能一定要架设服务器吗? 2019年的最后一天,舍得叔叔沉浸在探索的兴奋中,验证了微信小程序云开发也能优雅实现微信支付!小程序的目标是建立一个"serverless" ...

  3. 微信小程序云开发之微信支付

    文章目录 使用云函数获取wx.requestPayment所需的参数 第一步.使用npm导入tenpay 第二步.编写云函数代码 在页面js中调用该云函数即可 使用promise对代码进行改进 前两天 ...

  4. 小程序云开发实现微信支付完整代码

    效果图: 资质 需要是已经开通了微信支付,且已绑定了商户号的小程序. 开通 在云控制台 -> 设置 -> 全局设置中开通. 二, 创建支付的云函数 1,创建云函数pay 三,引入三方依赖t ...

  5. 史上最全教程没有之一,微信小程序使用云开发解决微信支付问题,我走了几天几夜的弯路啊

    我现在用云开发平台,想实现微信支付功能: 微信支付的前提 1.你的小程序开通了支付功能或者,你的小程序关联了商户号 2.你的小程序能开通支付功能,一般都是非个人类型的小程序 准备工作 1.获取小程序的 ...

  6. 新能力|云调用支持微信支付啦!

    导语 小程序·云开发的云调用能力,让用户可以免鉴权快速调用微信的开放能力,极大节约了开发成本.现在,云调用已支持微信支付,用户在云开发控制台可直接绑定微信支付商户,在绑定完成后可在云开发中原生接入微信 ...

  7. 仿京细菜谱微信小程序源码 云开发菜谱微信小程序源码

    京细菜谱是一个美食分享网站,提供优质的家常菜谱大全,仿京细菜谱小程序源码为喜欢美食的朋友提供了很多的美食烹饪教程 让您轻松学会做美食.对不同食材和地域的饮食做了不同的分类和详细的做菜方法 分类十分详细 ...

  8. 基于云开发的微信小程序实战教程(一)

    基于云开发的微信小程序实战教程(一) 最近刚开发了款小程序,在开发过程中发现,基于云开发的教程资源不是很多,而且很不详细.所以边实战边总结了下云开发的简单教程,希望对你有所帮助. 本章主要内容:什么是 ...

  9. 基于云开发的微信小程序:个人相册ByUestcXiye

    基于云开发的微信小程序:个人相册ByUestcXiye 作业要求 第一次作业 第二次作业 结课作业 小程序开发入门 开发前的准备 注册微信小程序 新建一个模板小程序 开通云开发服务 第一次作业 参考资 ...

  10. 云开发(微信-小程序)笔记(十四)---- 收藏,点赞(上)

    云开发(微信-小程序)笔记(十三)---- 注册登陆 1.简介 点赞,收藏等都是程序的最简单的功能,在现实的应用中也很常见.这里我就来给大家介绍一下小程序的这个功能. 图标下载地址 先去网站上http ...

最新文章

  1. 删除mysql的root用户恢复方法
  2. [NOIP2012提高组]国王游戏
  3. c++ socket编程_C/C++中的Socket编程
  4. android 数字滚动抽奖_2020年会必备,Excel轻松制作抽奖小游戏
  5. oracle学习数据,Oracle从入门到精通的学习笔记
  6. TensorFlow 2.0 mnist手写数字识别(CNN卷积神经网络)
  7. 电脑显示器闪屏_Win7系统电脑显示器屏幕闪屏的解决办法
  8. 信息学奥赛一本通(1239:统计数字)
  9. Yum本地Rpm库设置
  10. 收款收据设计html,最新收款收据模板的格式
  11. png转icon java,PNG转ICO - steambap的个人空间 - OSCHINA - 中文开源技术交流社区
  12. Hive MetaStore java.lang.NoClassDefFoundError: com/facebook/fb303/FacebookService$Iface
  13. Kubernetes快速入门
  14. win10卸载更新的方法
  15. Adrealm:区块链的“快慢之道”|金色财经独家专访
  16. esp8266模拟车模航模接收机控制电调驱动电机
  17. 一次nginx代理前端报rewrite or internal redirection cycle while internally redirecting to “index.html“ 记录
  18. android 自定义下拉菜单
  19. CAS单点登录快速入门
  20. 一文搞懂最强裂变团队的黑科技

热门文章

  1. 解三对角矩阵以及循环三对角矩阵方程的数值计算方法
  2. 9550电机_电机转矩T=9550*P/N推导。
  3. QTTabBar 安装使用记录
  4. llinux默认ip修改方法
  5. 数据分析软件及spss简单操作
  6. android 沙盒 ios,iOS之沙盒机制
  7. 全集成隔离DC-DC转换器CA-IS3105W简介
  8. php 小程序发送公众号的模板消息
  9. 施耐德 m340 编程手册_施耐德推出开放自动化平台,开启“软件驱动自动化”时代...
  10. android word文档预览(支持doc/docx两种格式)