基于微信云开发的商家转账至零钱

相关简介

本篇文章主要介绍如何通过微信云开发的云函数实现商家转账到零钱。(让那些没有服务器的程序员也可以练练手)

开通功能

微信官方文档

  • 本菜开发时开通条件是“连续正常交易30天且账户开通90天”,所有就连续30天转入自己账户小额金钱,幸好是去年开通的商户,所有90天是满足的。

  • 满足条件后就可以在【商户平台】【产品中心】开通【商家转账到零钱】,按照要求配置就行。

  • 此外还需要在【商户平台】【产品中心】开通【运营账号】,因为这些批量转账是通过运营账号发起的。

  • 还需要将在【云开发控制台】【云函数】中点击需进行配置云函数的【版本与配置】【配置】【高级配置】【固定公网IP】,确定之后复制ip地址。

  • 点击【产品中心】【商家转账到零钱】【产品设置】【设置IP白名单】即可。

阅读文档

产品介绍
准备工作
开发指引
API接口
相关插件

技术框架

采用wechatpay-axios-plugin这个插件完成Http的POST请求,并需要提前安装该插件的文档完成相关配置。
使用fs模块完成对证书、秘钥文件的读取。(需要将这两个文件放在这个云函数目录下)
在这里插入图片描述

配置环境

  • 安装fs模块npm install fs
  • 安装wechatpay-axios-plugin模块npm install wechatpay-axios-plugin
  • 安装yargs模块npm i yargs --no-save

编写代码

// 云函数入口文件
const fs = require('fs') // 文件读取模块
const cloud = require('wx-server-sdk')
const {Wechatpay, Formatter} = require('wechatpay-axios-plugin')
// 读取证书
const cert = fs.readFileSync('./apiclient_cert.pem', 'ascii')
const prikey = fs.readFileSync('./apiclient_key.pem', 'ascii')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
  const wxpay = new Wechatpay({
    // 商户号
    mchid: '商户号',
    // 商户证书序列号
    serial: '商户证书序列号',
    // 商户API私钥 PEM格式的文本字符串或者文件buffer
    privateKey: prikey,
    certs: {
      '插件生成的序列号': cert,
    },
    secret: '密钥',
    merchant: {
      cert: cert,
      key: prikey,
    },
  })
  console.log(wxpay)
  return wxpay.v3.transfer.batches.post({
    // mchid: "1604163157 ",
    appid: 'AppID',
    out_batch_no:"订单号",
    batch_name:"demo",
    batch_remark:'测试',
    total_amount:100,
    total_num:1,
    transfer_detail_list:[
      {
        out_detail_no:'x23zy427Bd5436',
        transfer_amount:100,
        transfer_remark:'测试',
        openid:'openID',
      }
    ]
  }).then(res=>{
    console.log(res.data)
    return res
  })
  .catch(({response: {status, statusText, data}}) => console.error(status, statusText, data))
}

注意事项

  1. 若在微信开发工具终端执行代码遇到如下问题在这里插入图片描述
    说明需要配置一下:
  • 首先使用管理员身份运行微信开发工具
  • 打开终端
  • 执行Set-ExecutionPolicy Unrestricted
    在这里插入图片描述
  1. 若提示验签失败,则需要检查相关信息是否正确。
  2. 若提示余额不足,则需要对【运营账户】进行充值。

相关参考

  1. 插件文档
  2. 官方文档
  3. 更改终端权限
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机农民工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值