解决微信小程序原生云开发退款报错“特约子商户商户号未授权服务商的产品权限”的问题

背景:微信小程序云开发支付没问题,退款时就会报这个错。

现象:

解决方法流程:

1、打开微信小程序开发者工具上面的云开发界面:

2、进入设置:

3、其他设置:

需要授权退款API权限,我这里已经授权了,未授权的话会有授权按钮,点击后会提示等待商户审核

4、我们来到微信支付商户后台:

授权后就可以使用退款的API了。

最后补一下退款的官方文档和我的传参:

文档:
developers.weixin.qq.com/minigame/de...

参数最关键的是要记录下来商户订单号,这个商户订单号是在发起支付时我们自己生成的,在我们自己的系统内保持唯一即可。

我的参数:

csharp 复制代码
let cloud = cloudBase.getCloud();
let refund_fee_type = 1; // 金额单位为分 1就是退款1分钱 100就是退款1块钱
const refund_params = {
  functionName: 'mcloud', // 这个函数名自己系统内的
  envId: config.CLOUD_ID, // 环境id
  sub_mch_id: config.SUBMCH_ID, // 子商户id 下面有说明在哪获取
  nonce_str: this.generateRandomString(), // 这里自己生成一个随机数就行,生成随机数的方法我下面也会提供
  out_trade_no: order.out_trade_no, // 支付时自己系统生成的商户订单号,需要在支付的时候存到订单表里,然后退款时从订单表里取出这个字段
  out_refund_no: this.generateRandomString(), // 商户退款单号,也是自己随机生成一个就行,用来查询退款情况用,比如退款成功还是失败
  total_fee: refund_fee_type, // 订单金额 单位:分
  refund_fee: refund_fee_type, // 申请退款金额,用户实际到账的金额 单位:分
  refund_desc: "手动取消",// 退款理由,界面显示效果如下
}
const res = await cloud.cloudPay.refund(refund_params);

envId在微信小程序点开云开发就能看到:

sub_mch_id也是在微信小程序云开发查看,依次点开云开发、设置、其他设置:

生成随机数的函数:

ini 复制代码
generateRandomString(length = 32) {
  let result = '';
  const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  const charactersLength = characters.length;
  for (let i = 0; i < length; i++) {
  	result += characters.charAt(Math.floor(Math.random() * charactersLength));
  }
  return result;
}

退款理由的界面显示效果:

这篇分享文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。

想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。

感谢你的阅读与支持,期待在未来的文章中与你再次相遇!

我的微信公众号:【xdub】,欢迎大家订阅,我会同步文章到公众号上。

相关推荐
zzzzzz3101 小时前
react-bits:从 36K Stars 的组件库,看动画交互组件该如何被评估
前端·react.js·动效
Setsuna_F_Seiei8 小时前
前端的 AI 学习之路 01 之 Agent API 调用 - 和 Agent 的基础对话
前端·人工智能·ai编程
threerocks9 小时前
AI 原生软件开发生命周期手册 - 如何借助 AI,逐阶段改造软件开发生命周期
前端·javascript·后端
徐小夕9 小时前
3分钟从想法到Agent上线:我们开源了一款AI可视化工作流“IDE”
前端·算法·github
why技术11 小时前
eli5,我觉得这个全网在吹的技能,使用体验真的很一般啊。
前端·人工智能·后端
excel11 小时前
记录升级 nuxt3 到 nuxt4 记录
前端
剑胆琴心静水深流11 小时前
全栈之路6---web集成与呈现
前端·vue.js·spring boot·分布式·spring·前端框架·npm
前端snow12 小时前
ai agent -- Memory汇总
前端
ITresearchGuest12 小时前
AI 焦虑下,前端该何去何从
前端·人工智能
Codiggerworld12 小时前
Chrome DevTools 隐藏神技:这 5 个调试技巧你可能从来没用过
前端·chrome·chrome devtools