首页 > 编程语言 >商业微信小程序开发:小白轻松接单(微信退款)

商业微信小程序开发:小白轻松接单(微信退款)

时间:2024-10-08 16:52:53浏览次数:9  
标签:refund no 微信 程序开发 data res 接单 退款 cloud

上一篇笔记介绍了微信支付的详细步骤:商业微信小程序开发:小白轻松接单(微信支付)_微信小程序快速接单-CSDN博客

那么这篇笔记将介绍一下微信的退款功能

1、商户端创建云函数处理退款

1、如果要用商户端进行退款,则需要在商户端的云开发控制台中与商户号进行绑定(怎么绑定,同样参考上篇笔记---微信支付)

2、在商户端微信开发者工具中新建一个nodejs云函数refund

3、在同级目录下创建一个public.js文件来生成所需的随机字符串

1.1、public.js

let nonceStr = function(){
	let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'
	let maxPos = chars.length
	let res = ''
	for(let i=0;i<32;i++){
		res+=chars.charAt(Math.floor(Math.random()*maxPos))
	}
	return res
}
// 退款单号
let ouTrefundno = function(){
	let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_-'
	let maxPos = chars.length
	let res = ''
	for(let i=0;i<40;i++){
		res+=chars.charAt(Math.floor(Math.random()*maxPos))
	}
	return res
}
module.exports = {nonceStr,ouTrefundno}

1.2、refund云函数

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境
var {nonceStr,ouTrefundno} = require('./public.js')
// 云函数入口函数 :退款申请
exports.main = async (event, context) => {
  const res = await cloud.cloudPay.refund({
    functionName:'paycallback',
    envId:'填写自己的云环境id',
    sub_mch_id:'1669895289',
    nonce_str:nonceStr(),
    out_trade_no:event.out_trade_no,//前端传来的商户订单号
    out_refund_no:ouTrefundno(),//商户退款单号
    total_fee:event.total_fee*100,//订单金额
    refund_fee:event.refund_fee*100//申请退款金额
  })
  if(res.returnCode == 'SUCCESS' && res.resultCode == 'SUCCESS'){
    // 申请退款成功
    return {code:200,msg:'退款申请成功',out_refund_no:res.outRefundNo}
  }else{
    // 申请退款失败
    return {code:4001,msg:'退款申请失败',errCodeDes:res}
  }
}

2 、商户端创建云函数查询退款

1、创建云函数queryRefund并创建public.js来生成随机字符串

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境
var {nonceStr} = require('./public.js')
// 云函数入口函数
exports.main = async (event, context) => {
  const res = await cloud.cloudPay.queryRefund({
    sub_mch_id:'1669895289',
    nonce_str:nonceStr(),
    out_refund_no:event.out_refund_no//商户退款单号
  })
  if(res.returnCode == 'SUCCESS'){
    if(res.resultCode == 'SUCCESS'){
      return {msg:'退款成功'}
    }else{
      return {msg:'退款处理中'}
    }
  }else{
    return {msg:'退款失败',error:res}
  }
}

3、在商户端的app.vue文件中配置云环境

export default {
    onLaunch: function() {
        wx.cloud.init({
            env:'chatgpt-hongxiang-8eygmh8e028171',
            traceUser:true,
        })
    },
}

实现退款按钮的逻辑

async function refund_sure(){
    let DB = await inIt()
    const res = await wx.cloud.callFunction({name:'refund',data:{
        out_trade_no:jy_data.data.out_trade_no,
        total_fee:jy_data.data.total_price*0.0001,
        refund_fee:jy_data.data.refund_price*0.0001
    }})
    // console.log(jy_data.data)
    console.log(res)
    if(res.result.code == 200){ //退款成功
        await DB.database().collection('huiyuan').where({_id:jy_data.data._id}).update({data:{
            deliver:'ref_succ',
            out_refund_no:res.result.out_refund_no
        }})
        new Feedback(res.result.msg,'none').toast()
        jy_data.data.deliver='ref_succ'
        back_item.type = 'yue'
        wx.navigateTo({
            url:'/pages/order/order'
        })
    }else{
        new Feedback(res.result.errCodeDes.errCodeDes,'none').toast()
    }
}

 可以体验一下完整项目(这仅仅是个示例小程序,商品是虚拟产品,不要支付哈,由于不会一直盯着后台,退款可能不及时。)

标签:refund,no,微信,程序开发,data,res,接单,退款,cloud
From: https://blog.csdn.net/Hyellow_s/article/details/142762052

相关文章

  • 鸿蒙开发教程实战案例源码分享-仿微信长按录音效果
    鸿蒙开发仿微信长按录音效果如果你项目有IM聊天,那么长按录音功能是必须的,最好是跟微信一样的效果,对不对。一、思路:自定义触碰事件二、效果图:鸿蒙开发教程实战案例源码分享-仿微信长按录音效果三、关键代码://联系:893151960@Entry@ComponentstructIndex{......
  • 数据清洗 微信:a1319614038
    #stata数据清洗整理合并筛选匹配#excel数据匹配合并筛选匹配#python数据清洗整理合并筛选匹配抓取,请直接说明具体要求发给我,我会第一时间回复你,#vlookup函数应用,vlookup功能实现,#CSV文件处理,超大文件,超过显示,#拆分,统计,批量处理,大量数据文件合并,#匹配合并,矩阵文件,各种问题解决。数......
  • ​微信小程序 页面间传递数据
    在小程序中,给页面传递参数通常有以下几种方法:通过URL传递参数:在小程序中,可以在页面的路径后面添加参数,然后在页面的onLoad函数中获取这些参数。//在app.json中配置页面路径"pages":[{"path":"pages/index/index","style":{"navigationBarTit......
  • 基于微信小程序的小区服务管理系统
    作者主页:编程千纸鹤作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与......
  • 基于微信小程序的实习生管理系统
    作者主页:编程千纸鹤作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与......
  • 基于微信小程序的实习生管理系统
    作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与各位高校教师、企业......
  • 婚恋交友系统源码支持微信小程序 + 微信公众号 + H5 + APP
    婚恋交友系统源码小程序:开启你的浪漫之旅在这个快节奏的时代,寻找真爱似乎变成了一项挑战。但有了我们的婚恋交友系统源码小程序,这一切都将变得简单而美好。这款小程序源码专为追求真挚情感的单身男女设计,集成了多种实用功能,旨在为用户提供一个安全、便捷、高效的在线交友平台......
  • 基于微信小程序的大学生就业平台-计算机毕业设计源码+LW文档
    摘要随着计算机技术的成熟,互联网的建立,如今,PC平台上有许多关于大学生就业方面的程序,但由于使用时间和地点上的限制,用户在使用上存在着种种不方便,而开发一款大学生就业平台微信小程序,能够有效地解决这个问题。本文主要介绍了大学生就业平台微信小程序的开发过程,对开发环境、系统......
  • 微信加强认证方法
    1,在电脑上登录您的微信(如果还没有下载,可以到官方[https://pc.weixin.qq.com/]下载安装微信电脑版);2,因为软件经常被误报,所以先确定退出电脑上的各类杀毒软件,之后双击打开之前发送给你的“微信备份专家”软件,如果弹出蓝色提示框,选择“更多信息”,然后向右滑动滚动条,选择“仍要运行”......
  • 婚恋交友系统源码支持微信小程序 + 微信公众号 + H5 + APP
    婚恋交友系统源码小程序:开启你的浪漫之旅在这个快节奏的时代,寻找真爱似乎变成了一项挑战。但有了我们的婚恋交友系统源码小程序,这一切都将变得简单而美好。这款小程序源码专为追求真挚情感的单身男女设计,集成了多种实用功能,旨在为用户提供一个安全、便捷、高效的在线交友平台。通过......