微信小程序云开发实现退款功能

官方文档

小程序云开发实现微信支付

官方文档非常的简单,也没有示例代码,只是列出了许多需要的参数,对于新手来说会可能有点迷糊。可以我的步骤跟着一步一步来。

一、获取退款API权限

在云开发控制台进行退款API权限的申请,然后在微信商户平台中进行授权。

二、代码开发

  async onRefund(e) {const model = await wx.showModal({title: '提示',content: '确认退款',confirmText: '退款'});if (model.confirm) {const totalN = new BigNumber(this.data.total_fee).times(100).toNumber();wx.cloud.callFunction({//调用cloudRefund云函数进行退款name: 'cloudRefund',data: {nonce_str: this.nonce_str, //可以参考uuid()生成算法生成本字段out_trade_no: this.data.out_trade_no, //支付时生成的out_trade_no ,生成函数可以参考我的微信支付文章out_refund_no: this.out_refund_no, //此生成函数与out_trade_no生成方式大同小异,只要保证唯一性就可以total_fee: totalN,refund_fee: totalN,},success: (res) => {console.log(res);//更新订单信息db.collection('orders').doc(this.orderId).update({data: {state: 4,refundReason: this.data.radio,refundReasonContent: this.data.content,refundImgs: this.data.fileList.map(item => item.url),refundDate: new Date()}})wx.redirectTo({url: '/pages/orderDetail/orderDetail?id=' + this.orderId,});},fail: (err) => {console.error(err);wx.showToast({title: '退款出错,请稍后再试',});}})}},
cloudRefund()云函数
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {const { nonce_str, out_trade_no, out_refund_no, total_fee, refund_fee } = eventconst res = await cloud.cloudPay.refund({envId: "test-8g5u1cc1e82",functionName: 'pay_cb', //自己创建云函数,可以是一个空的云函数,不需要做特别的处理sub_mch_id: '', //在云开发控制台中查看nonce_str,out_trade_no,out_refund_no,total_fee,refund_fee,})return res
}
outRefundNo() 生成out_refund_no
  outRefundNo() {const date = new Date();let month = date.getMonth() + 1if (month < 10) {month = '0' + month;}let dates = date.getDate();if (dates < 10) {dates = '0' + dates;}let hour = date.getHours();if (hour < 10) {hour = '0' + hour;}let minute = date.getMinutes();if (minute < 10) {minute = '0' + minute;}let seconds = date.getSeconds();if (seconds < 10) {seconds = '0' + seconds;}let milliscondes = date.getMilliseconds();if (milliscondes < 10) {milliscondes = '00' + milliscondes;} else if (milliscondes < 100) {milliscondes = '0' + milliscondes;}let outRefundNo = '';for (let i = 0; i < 5; i++) {outRefundNo += Math.floor(Math.random() * 10);}outRefundNo = "RF" + date.getFullYear() + month +dates + hour + minute + seconds + milliscondes + outRefundNo;console.log(outRefundNo);return outRefundNo;},

自此微信小程序云开发实现退款功能。

微信小程序云开发实现退款功能相关推荐

  1. 怎么实现微信小程序云开发拼团功能?

    [微信云开发教程]怎么实现微信小程序云开发拼团功能? 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 [微 ...

  2. 【第三篇】微信小程序云开发项目总结

    上篇文章:[第二篇]微信小程序云开发项目总结 功能点2:答疑解惑 这个功能点的实现基本与用户填写简历相同,都是用户上传数据到数据库,不加说明. 功能点3:消息回复 这个板块是用户查看管理员的回复消息的 ...

  3. 关于微信小程序云开发,申请退款接口返回“订单不存在”的问题

    关于微信小程序云开发,申请退款接口返回"订单不存在"的问题 微信支付的退款接口返回"订单不存在",有可能是因为传入的商户订单号或微信订单号有误,但本文要讲的是关 ...

  4. 微信小程序云开发微信支付、订单查询、申请退款

    微信小程序云开发微信支付 使用云开发微信支付功能的前提 统一下单 查询订单 申请退款 常见问题总结: 使用云开发微信支付功能的前提 小程序主体为企业或者工商个体户 小程序完成了微信认证 小程序接入微信 ...

  5. 微信小程序云开发——常用功能2:操作云数据库一键批量导入数据(导入json文件)

    微信小程序云开发--常用功能2:操作云数据库一键批量导入数据(导入json文件) 今天我们要添加100条数据.下面的过程是先创建一条记录,然后导出这条数据看json文件中是如何编辑字段的,然后仿照这个 ...

  6. 微信小程序云开发CMS中WebHook功能的使用方法

    微信小程序云开发CMS中WebHook功能的使用方法 官方文档 Webhook 是什么呢,翻译过来就是网页钩子.它的用处是,当我们在CMS进行增添查改的操作后,会自动回调webhook函数,我们就可以 ...

  7. 【微信小程序云开发】使用云函数(node.js)实现多张图片转成pdf的功能,且pdf带水印

    最近在做项目的时候,碰到一个功能需要多张图片转成pdf的功能,首先,在网上找了很多资料,都没有一个合适的. 后来,就自己动手使用云函数写了一个处理图片转成pdf的云函数,而且需带水印. 直奔主题,使用 ...

  8. 微信小程序云开发---vant组件 van-uploader 实现视频文件上传到云存储,发动态功能

    pages/upVideo.wxml //获取用户的头像和昵称展示 <view class="headerBox"><image src="{{user ...

  9. 微信小程序云开发不完全指北

    微信小程序云开发不完全指北 首先必须说明云开发的"云"并不是类似云玩家里的云的意思,而是微信小程序真的提供了云开发的接口以及一个简单的提供存储.数据库服务的虚拟后台(对于一些轻量小 ...

最新文章

  1. java查找和替换_java敏感字查找和替换
  2. GraphPad Prism 9 for Win版 Mac版 2021最新完美版下载 科学绘图
  3. linux-grub修复5步搞定
  4. spark 广播变量大数据_Spark基础知识(三)--- Spark的广播变量和累加器
  5. Bootstrap 折叠插件Collapse 事件
  6. 开源运维管理软件排名_云上自动化部署和运维的正确姿势
  7. pytorch进度条
  8. macbookpro升级后打不开eclipse_苹果更新MacBook Pro等蝶式键盘维修计划机型,包括最新2019款...
  9. 统信UOS桌面版游戏攻略
  10. 水和水蒸气物性计算微信小程序
  11. HTML短信验证码框,vue实现短信验证码输入框
  12. 中国慕课moocpython答案_中国大学慕课moocPython编程基础章节测试答案
  13. 等保2.0.第十一章.等保2.0实战(下)
  14. JWS 批注参考WebService注解
  15. c语言精髓之编译过程,C语言精髓知识点
  16. Web测试所涉及的主要测试点
  17. STM32+EC20实现4G无线通信
  18. 统计学习理论简介(一)
  19. UITableView上下滚动卡顿(获取网络数据,下载图片之后)
  20. HTTPS网页打开缓慢或者打不开

热门文章

  1. 【Java项目】——基于SpringBoot的用户信息管理系统
  2. matlab游程检验结果分析,SPSS教程学习笔记6:数据随机化游程检验
  3. D. Array and Operations
  4. 电脑进入pe时蓝屏_电脑进入PE会蓝屏是为什么
  5. java swt 状态栏_java – 在Mac上美化SWT应用程序
  6. 00后大学生:接受函数序偶定义,赢在起跑线上
  7. 离散数学第三章 集合与关系
  8. SOA面向服务架构:服务、服务实例、ARXML、服务接口调用、各参与方以及协议选择
  9. windows下,OpenGL播放NV12
  10. pytorch中交叉熵