广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >微信小程序云开发实现微信支付功能业务逻辑可靠
  • 542
分享到

微信小程序云开发实现微信支付功能业务逻辑可靠

2024-04-02 19:04:59 542人浏览 泡泡鱼
摘要

目录注册微信支付商户号小程序关联商户号业务逻辑代码实现今天打了几把永劫无间后,咱们来聊一聊用云开发来开发微信小程序时,如何实现微信支付,并且保证业务逻辑可靠。 注册微信支付商户号

今天打了几把永劫无间后,咱们来聊一聊用云开发来开发微信小程序时,如何实现微信支付,并且保证业务逻辑可靠。

注册微信支付商户号

点击“成为商家”,按照操作提示去申请商户号即可(需要营业执照,个体户或公司都行。没有可以办一个)

小程序关联商户号

注册完成,登录进去,点击产品中心。再点击AppID账号管理,关联微信小程序的AppID,同意即可。

在微信开发者工具绑定商户号,点击云开发,进入云开发控制台,点击设置,点击其他设置,添加商户号,如下图操作即可


前期工作准备结束后,开始进入撸代码环节了

业务逻辑


这个是官方文档的一张微信支付的业务逻辑示意图。我以前看的时候还是挺懵的,不知所云。后来真正实践过才明白它的意思。

举个栗子可能更好明白,我们在开发跑腿小程序的时候呢,需要发布跑腿功能,发布时需要进行微信支付。

先看看我画的图,发布跑腿的一个业务逻辑

代码实现

pay云函数:
主要是用于获取回包,回包里面有wx.requestPayment 发起微信支付所需要的参数。

const cloud = require('wx-server-sdk')
cloud.init({
  env: ''  //填入你的云开发环境ID
})
exports.main = async (event, context) => {
  const res = await cloud.cloudPay.unifiedOrder({
    "body": event.body,
    "outTradeNo" : event.outTradeNo, //不能重复,否则报错
    "spbillCreateIp" : "127.0.0.1", //就是这个值,不要改
    "subMchId" : "",  //你的商户号,
    "totalFee" : event.totalFee*100,  //单位为分
    "envId": "",  //填入你的云开发环境ID
    "functionName": "pay_success",  //支付成功的回调云函数
    "nonceStr":event.nonceStr,//随便弄的32位字符串,建议自己生成
    "tradeType":"jsapi"   //默认是JSAPI
  })
  return res
}

微信小程序前端代码调用pay云函数,并调用wx.requestPayment发起微信支付

  //使用微信支付
  pay:function(id){
    let that = this;
    wx.showLoading({
      title: '正在支付',
    })
    wx.cloud.callFunction({
      name: 'pay',  //云函数的名称
      data:{
          body:'支付跑腿费',
          outTradeNo:id,      //用记录号来做订单号,因为记录号也是唯一的。
          totalFee:that.data.price,
          nonceStr:'5K8264ILTKCH16CQ2502SI8ZNMTM67VS'
      },
      success: res => {
        console.log(res)
        const payment = res.result.payment
        wx.hideLoading();
        wx.requestPayment({
          ...payment, //...这三点是 es6的展开运算符,用于对变量、数组、字符串、对象等都可以进行解构赋值。
          success (res) {
             //这里success回调函数只有用户点击了“完成”或者返回键才会被触发
             //所以不要在这里写改变订单为已支付的业务逻辑
             //万一用户支付完成,但不点击"完成"或者返回键,那会造成数据不一致性的问题
             
            console.log('支付成功', res)
            wx.showToast({
              title: '下单成功',
              icon: 'success',
              duration: 2000
            })
          },
          fail (err) {
            console.error('支付失败', err) //支付失败之后的处理函数,写在这后面
            //为了节省数据库的空间,支付失败的订单可以删除
            db.collection('publish').doc(id).remove()
          },
        })
      },
      fail(ere){
          //为了节省数据库的空间,支付失败的订单可以删除
          db.collection('publish').doc(id).remove()
      },
    })
  },

这样就可以实现微信支付啦

特别注意,不要在wx.requestPayment接口的success回调函数里面写支付成功后的业务处理。切记!!!因为这里success回调函数只有用户点击了“完成”或者返回键才会被触发。万一用户支付完成,但不点击"完成"或者返回键,那会造成支付成功,但没去处理数据,导致数据不一致性的问题。

应该交给pay_success云函数来处理支付成功后的业务逻辑。

pay_success云函数:

const cloud = require('wx-server-sdk')
cloud.init({
  env:''   //填入你的云开发环境ID
})
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  const orderId = event.outTradeNo
  const returnCode = event.returnCode
  if(returnCode == 'SUCCESS'){
    //更新云数据库的订单状态,改为已支付的状态即可
    db.collection('publish').where({
        _id:orderId,
    }).update({
      data:{
        pay_status:true,  //改为已支付状态
      }
    })
    const res = {errcode:0,errmsg:'支付成功'}//需要返回的字段,不返回该字段则一直回调
    return res
  }
}

改变状态之后,我们在接单大厅里去查询获取待接单信息的时候,要去获取已支付的待接单的订单,也就是pay_status:true状态的订单即可。保证了数据的一致性。

其实云开发实现微信支付也没有那么难。只不过业务逻辑需要更加严谨一点。以前自己太辣鸡,写的业务逻辑漏洞百出,惭愧...

到此这篇关于微信小程序云开发实现微信支付功能业务逻辑可靠的文章就介绍到这了,更多相关小程序云开发实现微信支付内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 微信小程序云开发实现微信支付功能业务逻辑可靠

本文链接: https://www.lsjlt.com/news/148572.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序云开发实现微信支付功能业务逻辑可靠
    目录注册微信支付商户号小程序关联商户号业务逻辑代码实现今天打了几把永劫无间后,咱们来聊一聊用云开发来开发微信小程序时,如何实现微信支付,并且保证业务逻辑可靠。 注册微信支付商户号 ...
    99+
    2022-11-13
  • 微信小程序如何开发微信支付功能
    本篇内容主要讲解“微信小程序如何开发微信支付功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序如何开发微信支付功能”吧!用户请求开发者后台,发起下单请求发起请求前在小程序端调用&nbs...
    99+
    2023-06-26
  • 小程序发起微信支付功能怎么实现
    这篇文章主要讲解了“小程序发起微信支付功能怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“小程序发起微信支付功能怎么实现”吧!wx.requestPayment(OBJECT)发起微信...
    99+
    2023-06-26
  • 微信小程序支付功能如何实现
    这篇文章主要介绍了微信小程序支付功能如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序支付功能如何实现文章都会有所收获,下面我们一起来看看吧。微信小程序支付功能开发文档如下:小程序端,保留大部分的...
    99+
    2023-06-26
  • 微信小程序支付功能怎么实现
    实现微信小程序支付功能,需要以下步骤:1. 首先,在微信公众平台申请开通支付功能,并获取到支付相关的配置信息,包括 appID、商户...
    99+
    2023-08-16
    微信小程序
  • 小程序通过小程序云实现微信支付功能实例
    目录一、开通微信支付 1.1 关联商户号1.2 添加商户号1.3 管理员授权二、云函数开发2.1 新建云函数2.2 云函数代码2.3 云函数上传并部署三、小程序调用3.1 ...
    99+
    2022-11-12
  • 【微信开发】微信小程序实现实时聊天功能
    最近在做一个项目,需要运用到实时聊天功能,分享一下。      分为: 界面如何布局以及细节; 如何实现实时更新; 全部代码展示;         一、界面如何布局以及细节:         1.说到底,聊天界面就是循环一个数组,每一行...
    99+
    2023-09-02
    微信小程序 小程序
  • 如何使用PHP开发微信小程序的支付功能?
    如何使用PHP开发微信小程序的支付功能?随着微信小程序的普及,越来越多的开发者开始关注微信小程序的支付功能。在微信小程序中,用户可以通过支付功能实现购买商品、充值账户等操作。本文将介绍如何使用PHP开发微信小程序的支付功能,并提供具体的代码...
    99+
    2023-10-26
    PHP开发 PHP支付接口 微信小程序支付
  • 微信小程序中支付功能开发错误有哪些
    小编给大家分享一下微信小程序中支付功能开发错误有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!微信小程序 支付功能开发错误总结微信小程序支付终于踩完坑了,发现里面坑挺大的,现在发个贴,...
    99+
    2022-10-19
  • 微信小程序如何使用PHP实现支付功能
    小编给大家分享一下微信小程序如何使用PHP实现支付功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!本文实例为大家分享了微信小程序支付PHP具体代码,供大家参考,具体内容如下服务器端获取 ...
    99+
    2022-10-19
  • 微信小程序云开发实现搜索功能
    微信小程序云开发实现搜索功能,供大家参考,具体内容如下 微信小程序使用云开发实现搜索功能有两种情况,一种是简单的搜索用关键字来查询数据,另一种是模糊查询关于关键字的全部数据查询。废话...
    99+
    2022-11-13
  • 微信小程序云开发怎么实现搜索功能
    本篇内容介绍了“微信小程序云开发怎么实现搜索功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简单搜索功能实现WXML代码段<view...
    99+
    2023-06-30
  • 微信小程序开发如何实现地图功能
    这篇文章主要讲解了“微信小程序开发如何实现地图功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序开发如何实现地图功能”吧!基本使用地图组件使用起来也很简单。.wxml<map...
    99+
    2023-06-26
  • 【微信授权登录】uniapp开发小程序,实现获取微信授权登录功能
    一、解题思路: 微信授权登录(获取用户信息) 1.先获取用户信息——用户授权允许后,通过调用uni.login 可以获取到code。 2.拿着获取到的code去调用——登录接口,可以获取到token。 3.把token存入缓存。就可以在页面...
    99+
    2023-08-16
    小程序 微信 javascript
  • 微信小程序开发文件上传功能怎么实现
    这篇文章主要介绍了微信小程序开发文件上传功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序开发文件上传功能怎么实现文章都会有所收获,下面我们一起来看看吧。保存图片,我认为有两处需要保存&nbs...
    99+
    2023-06-26
  • uniapp开发小程序,实现获取【微信授权登录】功能
    APP微信授权登录需要到微信开放平台申请,在HBuilderX配置APP SDK中微信登录的appId,另外需要跟小程序、公众号授权账号互通的话也需要在微信开放平台申请 1、在微信公众平台申请应用,获取相应的appid和appsecret ...
    99+
    2023-09-28
    uni-app 小程序 微信
  • PHP开发微信小程序:如何实现自动回复功能?
    PHP开发微信小程序:如何实现自动回复功能?微信小程序是一种轻量级的应用程序,非常适用于移动设备。在开发微信小程序时,自动回复功能是一个非常重要的功能,可以提供更好的用户体验。本文将介绍如何使用PHP语言开发微信小程序的自动回复功能,并提供...
    99+
    2023-10-27
    PHP 微信小程序 自动回复
  • 微信小程序使用uni-app开发小程序及部分功能实现详解
    目录一、uni-app1、简介2、开发工具3、新建 uni-app项目4、把项目运行到微信开发者工具二、实现tabBar效果1、创建tabBar页面2、配置tabBar三、配置网络请...
    99+
    2022-11-13
    uniapp开发小程序 uniapp和原生小程序混合开发 使用uniapp开发微信小程序
  • 微信小程序开发实现首页弹框活动引导功能
    目录1.需求 2.数据库设计 3.Java后台配置实现4.微信小程序前端实现总结1.需求 后台可以配置活动时间,在活动期间,自动在小程序首页,以弹框形式显示活动图片。用户可以关闭活...
    99+
    2022-11-12
  • 如何使用PHP开发微信小程序的虚拟现实功能?
    如何使用PHP开发微信小程序的虚拟现实功能?随着科技的不断进步,虚拟现实(Virtual Reality,VR)技术被广泛应用于各个领域,其中微信小程序也不例外。虚拟现实功能的加入,可以为用户提供更加沉浸式的体验。本文将介绍如何使用PHP开...
    99+
    2023-10-26
    虚拟现实 PHP 微信小程序
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作