小程序云开发搜索功能的实现正则_几行代码实现小程序云开发提现功能

本文介绍了如何在云开发环境中实现微信商户付款到用户功能,包括开通条件、遇到的IP白名单问题及解决方案。作者通过上传证书到云存储,配置云函数来完成支付逻辑,并提供了一个简单的提现操作示例。文章最后呼吁云开发团队提供更完善的支付解决方案。
摘要由CSDN通过智能技术生成

先看效果:

a19f54060b23110492f577a651b02127.png

纯云开发实现,下面说使用步骤:一:开通商户的企业付款到领取功能说明地址:

https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1

使用条件

1、商户号(或同主体其他非服务商商户号)已入驻90日

2、截止今日回推30天,商户号(或同主体其他非服务商商户号)连续不间断保持有交易

使用条件是第一难,第二难在下面这里

d6bbd4d40c064b6f9096e81d862a608c.png

在网上找了很多,感觉是云开发这里的一个不完善地方,如果不填ip,会报这种错

{"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"NO_AUTH"}

云开发没有ip这个概念,所以这里有些无从下手,希望后期云开发能有更好支付方案吧,不过这里我采用了个替代方案,参考了社区帖子:

https://developers.weixin.qq.com/community/develop/doc/00088cff3a40d87d80f7267b65b800

之后我也亲自验证了,基本上就是这几个,当然肯定不够,但是可以自己在逻辑上进行处理,ip以下:

172.81.207.12172.81.212.74172.81.236.99172.81.235.12172.81.245.51212.64.65.131212.64.84.22212.64.85.35212.64.85.139212.64.87.134

接着,可以动手了

二、云开发部分

1、设置云存储

证书配置地址:

1302c22dfd1c4f7be7743d5d64ae8eee.png

下载后有三个文件,我们只需要p12结尾的那个

14ed13d001a327ee1425c5e1389c3fb9.png

然后,将这个apiclient_cert.p12文件上传到你的云存储

ed24fb4f105379b59d5327f323eabe02.png

这里处理完了,我们只需要一个东西,就是fileID也就是常说的云存储ID(上图红框内容)

2、配置云函数

新建云函数ref云函数

9f598c9fd43f87d6ddaad7c2de5b5faf.png

代码如下:

const config = {      appid: 'wx383426ad9ffe1111', //小程序Appid      envName: 'zf-shcud', // 小程序云开发环境ID      mchid: '1111111111', //商户号      partnerKey: '1111111111111111111111', //此处填服务商密钥      pfx: '', //证书初始化      fileID: 'cloud://zf-shcud.11111111111111111/apiclient_cert.p12' //证书云存储id};const cloud = require('wx-server-sdk')cloud.init({      env: config.envName})const db = cloud.database();const tenpay = require('tenpay'); //支付核心模块exports.main = async(event, context) => {//首先获取证书文件const res = await cloud.downloadFile({            fileID: config.fileID,      })      config.pfx = res.fileContentlet pay = new tenpay(config,true)let result = await pay.transfers({//这部分参数含义参考https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2            partner_trade_no: 'bookreflect' + Date.now() + event.num,            openid: event.userinfo._openid,            check_name: 'NO_CHECK',            amount: parseInt(event.num) * 100,            desc: '二手书小程序提现',      });if (result.result_code == 'SUCCESS') {//如果提现成功后的操作//以下是进行余额计算let re=await db.collection('user').doc(event.userinfo._id).update({                  data: {                        parse: event.userinfo.parse - parseInt(event.num)                  }            });return re      }}

需安装的依赖:wx-server-sdk、tenpay

这里只是实现了简单原始的提现操作,关于提现后,比如防止重复提交,提现限额这些,在开源二手书商城上有完整流程,地址:

https://github.com/xuhuai66/used-book-pro

这种办法,不是每次都能成功提现,小概率遇到ip未在白名单情况,还是希望,云开发团队能尽快出一个更好的解决方案吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值