10行代码实现小程序的支付功能!丨实战

  备案动态     |      2023-09-07
10行代码实现小程序的支付功能!丨实战

门户网站:

借助小程序云开发实现小程序的支付功能

先看效果图:

我们完全借助小程序云开发来实现这个支付功能,不需要自己搭建服务器、购买域名、备案域名、支持https。只需要一个简单的云功能,就可以轻松实现微信小程序的支付功能。

核心代码如下:

一、创建一个云开发小程序

关于如何创建云开发小程序,这里就不详细解释了。不知道如何创建云开发小程序的同学可以到腾讯云开发公众号菜单【技术交流-视频教程】中观看教学视频。

创建云开发小程序有几点注意的

1.不要忘记在app.js中初始化云开发环境。

2.创建云函数后,记得上传

二、创建支付的云函数

1.创建云功能支付

三、引入三方依赖tenpay

这里引入三方依赖的目的是为了创建一些我们支付所需要的参数。我们使用npm来安装依赖,npm必须安装node。这里我就不解释如何安装node了。百度一下,网上有很多。

1.首先右键pay,然后选择在终端中打开

2.我们使用npm来安装这个依赖。

命令行执行npm i tenpay

安装完成后,我们的支付云功能就会有一个package.json文件

至此我们的财付通依赖就安装完成了。

四、编写云函数pay

完整代码如下

//云开发实现支付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、初始化Payment const api=tenpay.init(config); let result=wait api.getPayParams({ out_trade_no: orderid, body: '商品简单描述',total_fee: Money, //订单金额(分), openid: wxContext.OPENID //支付用户的openid }); return result;} 复制:

一定要注意把appid,mchid,partnerKey换成你自己的。

到这里我们就完成了获取小程序支付所需参数的云函数代码。

不要忘记上传这个云函数。

出现下图表示上传成功

五、写一个简单的页面,用来提交订单,调用pay云函数。

这个页面很简单:

1.自己写一个订单号(这个订单号必须大于6位)

2.自行填写订单价格(单位为分)

3. 点击按钮,调用支付云功能。获取支付所需参数。

下图是官方支付api需要的一些必要参数。

下图为调用支付云函数获取的参数。和上图要求的一样吗?

六、调用wx.requestPayment实现支付

下图是官方示例代码:

这里就不详细解释了,我把完整的代码贴出来给大家

//pages/pay/pay.jsPage({ //提交订单formSubmit: function(e) { let that=this; let formData=e.detail.value console.log('表单中发生了提交事件,并且携带的数据为: ', formData) wx.cloud.callFunction({ name: 'pay', data: { orderid: '' + formData.orderid, Money: formData.money }, success(res) { console.log( '提交成功', res.result) that.pay(res.result) }, failure(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) }, failure(res) { console.log('支付失败', res) }, complete(res) { console .log('支付完成', res) } }) }}) 复制到这里,完全实现了云开发实现小程序支付的功能。

实现效果

1.调起支付键盘

2.支付完成

3.log日志,可以看出不同支付状态的回调

上图是支付成功的回调。回调成功后我们可以更改订单的支付状态。

下图是支付失败的回调:

下图为支付完成状态:

至此,我们就轻松实现了微信小程序的支付功能了,是不是非常简单呢?

源码地址:

https://github.com/TencentCloudBase/Good-practice-tutorial-recommended

如果您有什么关于使用云开发CloudBase的技术故事/技术实战经验想与大家分享,欢迎留言联系我们~比比心!