前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >节省80%代码量?对接微信支付,云开发推出两大新能力

节省80%代码量?对接微信支付,云开发推出两大新能力

作者头像
腾讯云开发TCB
发布2023-09-13 12:42:09
3350
发布2023-09-13 12:42:09
举报
文章被收录于专栏:云开发云开发

微信支付作为国内最大的支付服务之一,多年以来一直是各类APP、小程序、Web应用必须对接的公共服务之一。当然,对接微信支付也并非那么简单,除了官方文档、代码示例、SDK以外,依然会有一些较为复杂、繁重的开发工作量,例如:

  • 部署和维护微信支付证书
  • 实现微信支付的签名、验签、回调、对账流程
  • 搭建微信支付的后台管理系统,实现退款审核、查账单等功能

现在,微信云开发推出了全新的 「可视化工作流」 和 「云开发管理系统」 能力,帮助开发者更加快速、简便地完成微信支付场景的业务开发。

可视化工作流

提供可视化的逻辑编排能力,支持多种类型的节点,帮助快速对接外部API,帮助开发者更清晰、灵活、高效地组织和管理业务逻辑。

云开发管理工具

提供了一套基础的业务运营管理系统+低代码开发工具,涵盖小程序、公众号、微信支付等场景。开通后的管理系统支持从 Web 网页登录,支持分配运营人员账号和权限管理。开发者可基于低代码工具开发运营系统内的应用,拖拽组件生成前端 UI,从而定制各类管理端应用。

接下来我们对这两个能力进行简单地介绍:

#01

使用「可视化工作流」对接微信支付

根据微信支付的官方最佳实践,想要实现一个完备的下单、付款、落库流程,通常有以下四件事情需要开发者实现:

  1. 客户端(小程序、Web、原生App)根据服务端生成的预付单信息,调用客户端接口,完成支付
  2. 服务端接收微信支付回调,更新订单状态
  3. 定时调用查单接口校验订单,避免没收到回调导致订单状态异常
  4. (可选)每日or每周固定时间调用对账单接口进行对账

我们可以使用云开发可视化工作流以极高的效率实现以上需求。

// 使用云开发工作流,五分钟快速对接微信支付

云开发工作流提供了开箱即用的多种微信支付模板,仅需要少量配置即可完成微信支付下单、回调流程的对接。

第 1 步:部署工作流微信支付模板

打开微信开发者工具 -> 云开发控制台 -> 管理工具

选择工作流「微信支付下单」模板,并安装模板:

第 2 步:完成「下单」工作流的配置

模板部署完成后,进入工作流编辑器内完成配置。

首先我们选择触发节点,在配置栏内,找到触发工作流的 URL 配置(这个 URL 将会在后续的云函数内使用到)。

在支付下单节点内,完成 API 的配置。

PS:首次使用的用户如果没有可用的微信支付 API 实例,可以新建凭证+API实例。

支付通知回调的配置,可以配置成另一个工作流,或者已有 HTTP 服务的 URL:

第 3 步:完成「支付成功回调」工作流的配置

如果在第 2 步中,把支付通知回调配置为了另一条工作流,那么我们同样需要完成「支付成功回调」工作流的配置工作。

例如,我们可以使用自定义代码的节点,在支付回调中,修改云数据库内的订单状态:

代码语言:javascript
复制
const cloudbase = require("@cloudbase/node-sdk");

cloud.init({
  env: "<环境ID>",
});

const db = cloud.database();

// 示例:向 orders 集合中插入一条记录
const result = await db.collection("orders").add(wxpayTrigger.output.resource);
代码语言:javascript
复制
第 4 步:完成客户端与云函数代码

工作流配置完成后,接下来我们通过云函数来调用工作流,完成全套场景。

首先是云函数的示例代码,我们通过 HTTP 请求,调用「支付下单」工作流:

代码语言:javascript
复制
代码语言:javascript
复制
const axios = require("axios");
const cloud = require('wx-server-sdk');

// 工作流的触发 URL,在第 1 步中获取
const FLOW_URL = "https://xxxx.ap-shanghai.tcbautomation.cn/Automation/.....";

exports.main = async (event, context) => {
  const res = await axios.post(
    FLOW_URL,
    {
      description: "云开发工作流-微信支付测试",
      out_trade_no: "xxxxxxxxxxxxx", // 业务订单号,自定义指定
      amount: {
        total: 1, // 订单金额,单位为分
      },
      payer: {
        // 用户在小程序中的 OpenID,云函数中可直接获取
        openid: cloud.getWXContext().OPENID, 
      },
    }
  );

  const { timeStamp, packageVal, paySign, nonceStr } = res;

  return {
    timeStamp,
    packageVal,
    paySign,
    nonceStr,
  };
};

然后在小程序中,调用上述云函数获取预付单信息,使用 wx.requestPayment 调起客户端支付控件:

代码语言:javascript
复制
// 小程序端内
// 首先我们调用 makePayment 云函数
wx.cloud
  .callFunction({
    name: "makePayment",
    data: {
      // 业务自定义参数
    },
  })
  .then((res) => {
    // 获取到预付单信息
    const { timeStamp, packageVal, paySign, nonceStr } = res.result;

    // 唤起微信支付组件,完成支付
    wx.requestPayment({
      timestamp: timeStamp,
      nonceStr: nonceStr,
      package: packageVal,
      signType: "RSA",
      paySign: paySign,
      success(res) {
        // 支付成功回调
        // 实现自定义的业务逻辑
      },
    });
  });
代码语言:javascript
复制

可见,全程只有约 50 行代码,即可完成生成预付单、完成付款、接收微信支付回调三大块逻辑,非常方便快捷!

#02

使用「云开发管理系统」管理微信支付

云开发管理系统提供了一套基础的业务运营管理系统+低代码开发工具,解决小程序、公众号、微信支付等场景的管理后台搭建问题。

开通后的管理系统支持从 Web 网页登录,支持分配运营人员账号和权限管理。

在云开发管理系统中,开发者可以选用「微信支付管理」的模板,完成商家号的证书信息等配置之后,即可直接使用支付管理模板。

目前「微信支付管理」模板提供以下能力:

  • 订单查询
    • 使用商户号或订单号查询订单信息
  • 退款管理
    • 退款订单查询
    • 退款申请
  • 交易账单
    • 通过时间、账单类型查询账单
    • 支持下载账单
  • 资金账单
    • 通过时间、账单类型查询账单
    • 支持下载账单

// 如何开通使用「微信支付管理系统」?

第 1 步:进入管理系统控制台,安装模板

进入云开发控制台,点击「更多」-「管理工具」

选择「小程序支付管理」模板,并安装模板

安装完成后,点击「编辑」,进入低代码编辑器。

第 2 步:完成微信支付相关配置

在低码编辑器的侧边栏中,点击「数据源」

进入「APIs」-「微信支付-小程序」-「基本信息」,点击编辑按钮,配置微信支付的基础信息:

  • 您的小程序 AppID
  • 支付商户号
  • 商户证书序列号
  • 商户 API 私钥
  • API V3 秘钥

配置完成后,点击保存按钮。

第 3 步:发布应用
  1. 回到页面编辑器,点击右上角发布,将会自动触发依赖项检查
  2. 点击发布数据源
  3. 发布数据源完毕后,再次点击发布应用
第 4 步:访问管理系统

发布成功后,您可以直接在编辑器内跳转至管理系统,或者在应用详情页中获得管理系统的地址和初始账号密码:

您也可以在下方的用户管理中,自行创建运营者账号,详情可参考 云开发用户管理文档:

https://docs.cloudbase.net/toolbox/manage-users

# 总结

云开发提供了 可视化工作流 和 管理系统 两个强大的能力,帮助开发者更加简单、高效、安全地对接微信支付,并且对支付相关业务进行后台管理。后续我们将会进一步深化功能,支持微信支付的分账、转账到零钱、代金券等运营场景,欢迎在评论区留言,您的反馈将会决定后续产品功能的上线优先级。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-09-12 17:49,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云开发CloudBase 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • // 使用云开发工作流,五分钟快速对接微信支付
    • 第 1 步:部署工作流微信支付模板
      • 第 2 步:完成「下单」工作流的配置
        • 第 3 步:完成「支付成功回调」工作流的配置
          • 第 4 步:完成客户端与云函数代码
          • // 如何开通使用「微信支付管理系统」?
            • 第 1 步:进入管理系统控制台,安装模板
              • 第 2 步:完成微信支付相关配置
                • 第 3 步:发布应用
                  • 第 4 步:访问管理系统
                  相关产品与服务
                  云开发 CloudBase
                  云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档