微信小程序接入第三方支付的方法(小程序通过小程序云实现微信支付功能实例)
类别:编程学习 浏览量:1117
时间:2021-10-06 01:24:51 微信小程序接入第三方支付的方法
小程序通过小程序云实现微信支付功能实例目录
- 一、开通微信支付
- 1.1 关联商户号
- 1.2 添加商户号
- 1.3 管理员授权
- 二、云函数开发
- 2.1 新建云函数
- 2.2 云函数代码
- 2.3 云函数上传并部署
- 三、小程序调用
- 3.1 统一下单
- 3.2 支付成功回调
1.1 关联商户号
\微信公众号平台\功能\微信支付\商户号管理\关联商户号
1.2 添加商户号
\云开发平台\设置\其他设置\微信支付配置\添加商户号
1.3 管理员授权
1.2那张图上,点击授权。管理员的微信就会跳出提示,点击确定授权即可。
否则使用的时候,会出现sub_mch_id与sub_appid不匹配
的报错!
2.1 新建云函数
2.2 云函数代码
\pay\index.js
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" : event.body, "outTradeNo" : event.outTradeNo, "spbillCreateIp" : "127.0.0.1", "subMchId" : "0000000000", //这里要注意:虽然key是子商户id,实际上就是普通商户id "totalFee" : parseInt(event.totalFee), //第二个坑:注意必须是数字,如果不是数字,则会报错unifiedOrder:fail wx api error: -202 "envId": "ooo-xxxxxxxxxxxxxxxx", //这里是回调函数所属的的云环境id "functionName": "payCallBack", //这个是回调函数名 "nonceStr":event.nonceStr, //第三个坑:官方文档中相关云函数代码没有nonceStr和tradeType,测试的时候会报nonceStr不存在的错,翻看文档才发现这个是必填项,直接粘过来以后还需要加上这两个参数 "tradeType":"JSAPI" }) return res }
2.3 云函数上传并部署
3.1 统一下单
- 微信下单后获得的数据,最好先保存到数据库,留底
- 再去调起微信支付界面
//调用云函数,微信统一下单 cloudPay(){ var _this = this this.setData({ body: "账单支付-xxxxx", outTradeNo: this.data.id+"-"+util.uuid(16), totalFee: this.data.totalCost*100 //支付单位:分 }) app.showLoading(true) wx.cloud.callFunction({ name: "pay", data: { body: _this.data.body, outTradeNo: _this.data.outTradeNo, totalFee: _this.data.totalFee, nonceStr:util.uuid(32)//调用自己的uuid函数 }, success(res) { // errCode: 0 // errMsg: "cloudPay.unifiedOrder:ok" // returnCode: "FAIL" // returnMsg: "total_fee is empty. " console.log("提交成功", res.result) if(res.result.returnCode!="SUCCESS"){ app.showToast(res.result.returnMsg) return } _this.unifiedOrder(res.result) // _this.requestPayment(res.result) }, fail(res) { console.log("提交失败", res) } }) },
3.2 调起微信支付界面
//官方标准的支付方法,调起支付界面 requestPayment(payData) { var _this = this; const payment = payData.payment//这里注意,上一个函数的result中直接整合了这里要用的参数,直接展开即可使用 wx.requestPayment({ ...payment, //...是展开变量的语法 success(res) { console.log("支付成功", res) _this.paySuccess() }, fail(res) { console.log("支付失败", res) } }) },
3.2 支付成功回调
- 不太建议直接在requestPayment的success回调函数中,执行支付成功的操作
- 最好在另外建一个云函数payCallBack
- 这个云函数payCallBack,调用我们自建服务器的接口,执行支付成功的操作
- 这边涉及到如何在云函数中调用http接口,卖个关子,后续讲
到此这篇关于小程序通过小程序云实现微信支付功能实例的文章就介绍到这了,更多相关小程序 微信支付内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- 聊天室python小程序(用Python写一个模拟qq聊天小程序的代码实例)
- 微信小程序图片加特效(微信小程序实现可实时改变转速的css3旋转动画实例代码)
- ih5如何点击按钮跳转至网页(HTML5跳转小程序wx-open-launch-weapp的示例代码)
- python简易翻译器的运行(Python3.6实现带有简单界面的有道翻译小程序)
- 微信小程序开发模式(微信小程序引入Vant框架的全过程记录)
- 微信小程序接口返回数据怎么弄(微信小程序页面返回传值的4种解决方案汇总)
- canvas小程序海报(使用canvas生成含有微信头像的邀请海报没有微信头像问题)
- php开发微信小程序后台步骤流程(基于PHP实现微信小程序客服消息功能)
- 微信小程序开发完整操作流程(微信小程序开发之组件设计规范)
- python抽奖代码教程(python实现抽奖小程序)
- html5按钮点击跳转(HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题)
- 微信小程序swiper大小调整(微信小程序swiper-dot中的点如何改成滑块详解)
- 9小时搞定微信小程序开发(关于加快微信小程序开发的一些小建议)
- 微信小程序通知验证签名方法(微信小程序实现电子签名)
- 微信小程序语音录入(微信小程序使用同声传译实现语音识别功能)
- python编写小程序实现密码验证(python实现扫描ip地址的小程序)
- 吉善缘《聚宝金蟾》金蟾招财摆件 三足全铜蟾蜍客厅店铺开业礼品(吉善缘聚宝金蟾金蟾招财摆件)
- 招财化煞神兽,金蟾变了(招财化煞神兽金蟾变了)
- 26岁杨紫的白素贞遇上24岁鞠婧祎,哪个最美(26岁杨紫的白素贞遇上24岁鞠婧祎)
- 鞠婧祎和杨紫两种风格的女生,你心里谁比较美(鞠婧祎和杨紫两种风格的女生)
- 三千年第一美女鞠婧祎出演白素贞pk杨紫,颜值胜赵雅芝王祖贤(三千年第一美女鞠婧祎出演白素贞pk杨紫)
- 成都轨道交通13号线一期工程最新进展(成都轨道交通13号线一期工程最新进展)
热门推荐
- thinkphp5.1请求流程(ThinkPHP5.0框架使用build 自动生成模块操作示例)
- python创建hbase命名空间(python使用phoenixdb操作hbase的方法示例)
- C#中抽象类和接口的区别有哪些
- 查看docker运行状态命令(使用docker命令不需要敲sudo的操作)
- C#中ICollection介绍
- docker镜像重启数据丢失(Docker数据备份恢复实现过程详解)
- docker的安装部署(Docker快速安装Zookeeper的详细教程)
- mysql 索引怎么实现(Mysql中索引和约束的示例语句)
- vue3 兄弟组件(vue3如何按需加载第三方组件库详解)
- dedecmsv6如何安装(dedecms 下载地址加迅雷专用链的操作方法 比较全)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9