之前,我曾向您介绍过一种使用小程序云开发来实现微信的付款方式,但是这种操作有点麻烦,而且经常会出现问题。今天,我将告诉您一个简单的例子,并使用官方付款api实现小程序付款功能。
门户
借助小程序云开发实现小程序支付功能
旧规则,首先看一下本节的效果图
我们完全在小程序云开发的帮助下实现了这种付款功能。无需构建自己的服务器,无需购买域名,无需域名注册,也无需支持https。只需一个简单的云功能即可轻松实现微信小程序支付功能。
核心代码如下
一个,创建云开发小程序
关于如何创建云开发小程序,我将不在这里详细解释。对于那些不知道如何创建云开发小程序的人,您可以阅读我以前的文章或观看我录制的视频:
创建云开发小程序有几点需要注意
1,不要忘记在app.js中初始化云开发环境。
2,创建云功能后,请确保将其上传
第二,创建支付云功能
1,创建云功能付费
三,引入三方依赖财付通
此处引入三方依赖性的目的是创建一些我们在付款时需要的参数。我们使用npm安装依赖项,并且npm必须安装节点。我不会在这里解释如何安装节点。看百度,网上有很多。
1,首先右键单击付款,然后选择在终端中打开
2,我们使用npm安装此依赖项。
在命令行中执行npm i tenpay
安装完成后,我们的付费云功能将具有一个附加的package.json文件
此时,我们的tenpay依赖项已安装。
四,写云功能付费
完整代码如下
//云开发实现支付const cloud = require('wx-server-sdk')cloud.init()//1,引入支付的三方依赖const tenpay = require('tenpay');//2,配置支付信息const config = { appid: '你的小程序appid', mchid: '你的微信商户号', partnerKey: '微信支付安全密钥', notify_url: '支付回调网址,这里可以先随意填一个网址', spbill_create_ip: '127.0.0.1' //这里填这个就可以};exports.main = async(event, context) => { const wxContext = cloud.getWXContext() let { orderid, money } = event; //3,初始化支付 const api = tenpay.init(config); let result = await api.getPayParams({ out_trade_no: orderid, body: '商品简单描述', total_fee: money, //订单金额(分), openid: wxContext.OPENID //付款用户的openid }); return result;}
请确保将appid,mchid,partnerKey更改为您自己的。
在这里,我们获得了小程序付款所需参数的云功能代码,并完成了编写。
别忘了上传此云功能。
如果出现以下图片,则表明上传成功
五,编写一个简单的页面来提交订单并调用支付云功能。
此页面非常简单
1,您自己输入一个订单号(此订单号必须大于6位数字)
2,随意填写订单价格(单位为美分)
3。单击按钮以调用支付云功能。获取付款所需的参数。
下图显示了官方付款api所需的一些必需参数。
下图显示了我们通过调用支付云函数获得的参数。与上图相同吗?
六,致电wx.requestPayment以实现付款
下面的图片是官方示例代码
我在这里不做详细解释,我将把完整的代码发布给大家
// pages/pay/pay.jsPage({ //提交订单 formSubmit: function(e) { let that = this; let formData = e.detail.value console.log('form发生了submit事件,携带数据为:', formData) wx.cloud.callFunction({ name: "pay", data: { orderid: "" + formData.orderid, money: formData.money }, success(res) { console.log("提交成功", res.result) that.pay(res.result) }, fail(res) { console.log("提交失败", res) } }) }, //实现小程序支付 pay(payData) { //官方标准的支付方法 wx.requestPayment({ timeStamp: payData.timeStamp, nonceStr: payData.nonceStr, package: payData.package, //统一下单接口返回的 prepay_id 格式如:prepay_id=*** signType: 'MD5', paySign: payData.paySign, //签名 success(res) { console.log("支付成功", res) }, fail(res) { console.log("支付失败", res) }, complete(res) { console.log("支付完成", res) } }) }})
至此,云开发实现小程序支付的功能已完全实现。
要达到效果1,请拨出付款键盘
2,付款完成
3,登录日志,可以看到不同付款状态的回调
上图是成功付款的回调。回调成功后,我们可以更改订单的付款状态。
下图是付款失败的回调,
下图显示了付款状态。
在这里,我们轻松实现了微信小程序的支付功能。是不是很简单?
如果您认为图形和文字不被理解,我将录制一段视频以供稍后解释。
视频说明
源代码地址:
014实现小程序付款的云开发是我们的源代码。如果您导入源代码或在学习过程中遇到任何问题,则可以留言或发私人信息给我。我们大家一起学习,共同进步。