微信云开发实现微信支付与退款的两种思路
微信云开发实现微信支付与退款的两种思路
本人专注使用云开发,实现一个前端可以做后端以及整个项目的部署与上线。
如果觉得我讲的好就可以给我点个赞。也可以加我微信了解详情。
1.首先你需要先了解 一下基本的云开发知识。
我们主要用到的数据库和云函数的操作为,调用云函数支付,以及调用云函数退款
主要有两种调取支付的办法,
第一种:使用基础的官方提供的 cloud.cloudPay进行操作,
按照官方的说法:支付官方文档
第一步先用云函数对创建的订单 进行统一下单,具体代码如下。
//云函数部分
const res = await cloud.cloudPay.unifiedOrder({"body" : '收款名称',"outTradeNo" : '商户支付向后台提供的订单号', //商户单号"spbillCreateIp" : "127.0.0.1", //这个写这个就行"subMchId" : "用户商户号", "totalFee" : '支付金额*100', //这里单位为分"envId": "cloud1-5gsz8z6d5ba3a08f","functionName": "pay_cb"})//js部分,请求后可以获取requestPayment所需的所有参数。wx.requestPayment({timeStamp: '',nonceStr: '',package: '',signType: 'MD5',paySign: '',success (res) { },fail (res) { }
})
到此就完成了支付的实现,主要是支付订单号要不同,订单金额以分为单位。
第二步退款,按照支付文档中的要求
const res = await cloud.cloudPay.refund({"out_refund_no": "T" + new Date().getTime(),//商户退款单号"out_trade_no": '商户订单号',//就是支付时提交的商户订单号"nonce_str": "" + new Date().getTime(),//随机字符串"sub_mch_id": "商户号",//子商户号"total_fee": event.total_fee,//订单金额"refund_fee": event.total_fee,//申请退款金额 })
这里有两个注意点,商户号可以不说子商户号,需要后台绑定下面的图片
这个需要在微信支付平台上授权。在微信支付平台的产品中心 —> 我授权的产品 点击服务商API退款 授权
还要一点需要注意的是退款金额一定要小于等于支付金额。
以上为使用官方自带的实现云开发支付。
第二种,使用tenpay模块实现支付
我一般使用的就是这个
这个需要依靠于node.js, 所以需要电脑安装号node.js。
在云函数中右击打开终端安装tenpay
npm i tenpay
如已安装旧版, 重新安装最新版
npm i tenpay@latest
第一步实例化
const tenpay = require('tenpay');
const config = {appid: '公众号ID',mchid: '微信商户号',partnerKey: '微信支付安全密钥',pfx: require('fs').readFileSync('证书文件路径'),notify_url: '支付回调网址',spbill_create_ip: 'IP地址'
};
这里指出一下需要下载安装一下证书到云函数中
这个是支付证书放在支付云函数中就行,嘻嘻嘻
第二步初始化支付
const api = new tenpay(config);
// 方式二
const api = tenpay.init(config);
我们使用 const api = tenpay.init(config);就行
第三步 调用支付获取wx.requestPayment所需参数。
const wxContext = cloud.getWXContext();
let result = await api.getPayParams({out_trade_no: '商户内部订单号',body: '商品简单描述',total_fee: '订单金额(分)',openid: '付款用户的openid'
});
这里openid可以用const wxContext = cloud.getWXContext();获取
在js中调用wx.requestPayment就可以完成支付了。
退款的使用,其注意事项和上面的注意事项相同
let result = await api.refund({// transaction_id, out_trade_no 二选一// transaction_id: '微信的订单号',out_trade_no: '商户内部订单号',out_refund_no: '商户内部退款单号',total_fee: '订单金额(分)',refund_fee: '退款金额(分)'
});
只要调用这个就可以完成退款,等待1-3分钟就会出现。
以上是我 的一个小项目的 源码,如有不正确的希望大神可以不吝赐教,大家也可以 看看我的思路。最后希望大家可以给我一个关注。我会继续创造下去的,谢谢大家。
微信云开发实现微信支付与退款的两种思路相关推荐
- 微信小游戏开发之Cocos Creator使用微信云开发和微信开放能力
主题 Cocos Creator集成微信云开发和调用微信开放能力 特别说明 CocosCreator微信小游戏开发系列文章,是我在逐步开发过程中,基于官方文档之上,记录一些重点内容,以及对官方文档中有 ...
- 基于微信云开发的微信小程序之搜索功能的实现
文章目录 搜索功能的设计 代码逻辑 页面设计 效果展示 搜索功能的设计 功能描述: 该模块主要是基于云开发实现小程序搜的搜索功能.如果搜索框输入为空或直接点击搜索按钮,显示对应弹窗:如果搜索框输入内容 ...
- 从0到1用微信云开发实现的电竞赛事盒子小程序
Dota2云玩家赛事盒子 - Dota2比赛图文直播,比赛预告,比赛记录,TI.10年,Dota2视频集锦专题等,更多功能可扫描上方小程序码体验查看.欢迎大家扫码体验.交流学习~ 为什么选用小程序云开 ...
- 微信小程序使用云开发实现微信支付功能 报错Error: 签名错误,史上最全解决办法,不服留言骂我
报错背景 微信小程序使用云开发实现微信支付功能,但是报错了 报错信息 报错原因 小程序想要使用微信支付,必须满足下面几个条件的 1,必须是非个人小程序(个人小程序用不了支付) 企业小程序需要认证! 2 ...
- 仿京细菜谱微信小程序源码 云开发菜谱微信小程序源码
京细菜谱是一个美食分享网站,提供优质的家常菜谱大全,仿京细菜谱小程序源码为喜欢美食的朋友提供了很多的美食烹饪教程 让您轻松学会做美食.对不同食材和地域的饮食做了不同的分类和详细的做菜方法 分类十分详细 ...
- 【微信小程序】基于JavaScript的花店商城小程序微信云开发
[微信小程序]基于JavaScript的花店商城小程序微信云开发 用Java Script语言进行一次微信小程序开发 文章目录 前言 一.功能总览 二.功能显示 1.搜索框 2.轮播图 3.主题导航栏 ...
- 基于云开发的微信小程序实战教程(一)
基于云开发的微信小程序实战教程(一) 最近刚开发了款小程序,在开发过程中发现,基于云开发的教程资源不是很多,而且很不详细.所以边实战边总结了下云开发的简单教程,希望对你有所帮助. 本章主要内容:什么是 ...
- 基于云开发的微信小程序:个人相册ByUestcXiye
基于云开发的微信小程序:个人相册ByUestcXiye 作业要求 第一次作业 第二次作业 结课作业 小程序开发入门 开发前的准备 注册微信小程序 新建一个模板小程序 开通云开发服务 第一次作业 参考资 ...
- 云开发(微信-小程序)笔记(十四)---- 收藏,点赞(上)
云开发(微信-小程序)笔记(十三)---- 注册登陆 1.简介 点赞,收藏等都是程序的最简单的功能,在现实的应用中也很常见.这里我就来给大家介绍一下小程序的这个功能. 图标下载地址 先去网站上http ...
- uniapp 微信云开发静态网站和云函数跳转小程序
uniapp 微信云开发静态网站和云函数跳转小程序 云开发静态网站的创建 云函数及copy-webpack-plugin 安装copy-webpack-plugin可能遇到的问题 静态网站和云函数的搭 ...
最新文章
- 爬虫之requests模块超时参数timeout的使用
- Webwork 学习之路【07】文件上传下载
- 安全产品研发与落地的一些方法与思考
- 文件监视器——Filemon
- phalcon安装-遇坑php-config is not installed 解决方法
- “Info.plist” couldn’t be removed
- 使用 Roslyn 编译器服务
- excel学习1-查看一列数值是否在另一列中存在
- HDU1847 Good Luck in CET-4 Everybody!【SG函数】
- 基于httpd的mod_deflate模块
- Linux下套接字详解(十)---epoll模式下的IO多路复用服务器
- 因严重 OpenSSL 漏洞,Fedora 37 推迟至 11 月中旬发布
- 引用限定符 reference qualifiers
- 基于Webmagic的爬取B站用户数据的爬虫
- 加班申请 ----中间表--系统自动算出---可调休天数
- Linux中的ps命令详解
- 手游测试工具-脚本精灵
- 十进制数转换成十六进制数
- 上海科技大学和南方科技大学计算机,上海科技大学和南方科技大学哪个好?哪个更容易考?...
- 全球及中国唇彩行业商业模式分析及投资风险预测报告2022-2028年版