网站推广.NET

网站推广.NET

实战经验:10行代码实现微信小程序支付功能,

来源:互联网

之前,我曾向您介绍过一种使用小程序云开发来实现微信的付款方式,但是这种操作有点麻烦,而且经常会出现问题。今天,我将告诉您一个简单的例子,并使用官方付款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实现小程序付款的云开发是我们的源代码。如果您导入源代码或在学习过程中遇到任何问题,则可以留言或发私人信息给我。我们大家一起学习,共同进步。