从零玩转系列之微信支付实战PC端支付微信退款接口搭建1

简介: 从零玩转系列之微信支付实战PC端支付微信退款接口搭建

一、前言

继前文章取消订单接口和查询订单接口此篇为申请退款流程,此篇文章过长我将分几个阶段的文章发布(项目源码都有,小程序和PC端)

在此之前已经更新了微信支付开篇、微信支付安全、微信实战基础框架搭建、本次更新为微信支付实战PC端接口搭建,实战篇分为几个章节因为代码量确实有点多哈.

  • 第一章从零玩转系列之微信支付开篇
  • 第二章从零玩转系列之微信支付安全
  • 第三章从零玩转系列之微信支付实战基础框架搭建
  • 第四章从零玩转系列之微信支付实战PC端支付下单接口搭建
  • 第五章从零玩转系列之微信支付实战PC端支付微信回调接口搭建
  • 第六章从零玩转系列之微信支付实战PC端支付微信取消订单接口搭建
  • 第七章从零玩转系列之微信支付实战PC端支付微信退款订单接口搭建
  • 第八章从零玩转系列之微信支付实战PC端项目构建Vue3+Vite+页面基础搭建
  • 第九章从零玩转系列之微信支付实战PC端装修下单页面
  • 第十章从零玩转系列之微信支付实战PC端装修我的订单下单页面
  • 第十一章从零玩转系列之微信支付实战PC端我的订单接入退款取消接口
  • 第十二章从零玩转系列之微信支付实战Uni—App基础项目搭建
  • ca8d4352_5151444.png

本次项目使用技术栈

后端: SpringBoot3.1.x、Mysql8.0、MybatisPlus

前端: Vue3、Vite、ElementPlus

小程序: Uniapp、Uview

演示地址查看 WEB端 小程序

一、订单退款

什么是订单退款?

订单退款是指在购买商品或服务后,由于某种原因,消费者选择取消订单或者商家无法提供所承诺的商品或服务,从而触发一项退款过程。退款通常是指商家将之前从消费者支付的金额返还给消费者的操作。这可以是因为商品瑕疵、服务不满意、订单错误或其他原因,消费者和商家之间达成的一种解决方案,旨在确保消费者的权益得到保护。

场景

申请退款的场景有很多,以下是一些常见的情况:

  1. 商品瑕疵: 消费者收到的商品存在损坏、缺陷或不符合描述,可以申请退款以获得补偿或返还款项。
  2. 不满意的服务: 消费者购买的服务未达到预期,例如餐厅用餐体验差、旅行服务不如预期等。
  3. 订单错误: 消费者可能因误操作或信息错误而下错订单,需要取消并申请退款。
  4. 发货延迟: 如果商家延迟了订单的发货,消费者可能会申请退款。
  5. 重复支付: 消费者可能因系统问题或网络故障而重复支付了一笔订单,需要申请退款。
  6. 无法提供服务: 商家无法按约定提供服务,例如演出取消、酒店无法入住等情况。
  7. 不适用: 购买的商品或服务并不适用于消费者,例如购买了不适合自己的尺寸、不适合的软件等。
  8. 退货: 消费者购买了实物商品后,决定退货并获得退款。

以上是GPT3.5专业的回答

思考

思考我们程序当中需要的步骤初步形成

  1. 我们支付完毕后拿到该订单的订单号
  2. 根据订单号查询我们数据库里的支付日志表状态必须是支付成功
  3. 因为我们目前是没有登录功能的是不知道哪些订单是谁的所以我们需要根据某个唯一的编号来判断这个订单是这个客户的
  4. ‼️ 微信申请退款成功后会发起一个退款回调的请求这个后面会讲!!!

8da7bead_5151444.png

我们都知道支付成功后微信会提示我们支付成功并且会生成一个交易记录我们点击进去可以看到交易订单号

好我们去查看一下文档会不会给我们这个编号

4902ecdc_5151444.png

很明显我们是会拿到的~ 那么就到时候存一下呗在用户提供咱们判断一下呗 不就完事了呗~

微信说明

当交易发生之后一年内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付金额退还给买家,微信支付将在收到退款请求并且验证成功之后,将支付款按原路退还至买家账号上。

⚠️注意

1、交易时间超过一年的订单无法提交退款

2、微信支付退款支持单笔交易分多次退款(不超50次),多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。申请退款总金额不能超过订单金额。 一笔退款失败后重新提交,请不要更换退款单号,请使用原商户退款单号

3、错误或无效请求频率限制:6qps,即每秒钟异常或错误的退款申请请求不超过6次

4、每个支付订单的部分退款次数不能超过50次

5、如果同一个用户有多笔退款,建议分不同批次进行退款,避免并发退款导致退款失败

6、申请退款接口的返回仅代表业务的受理情况,具体退款是否成功,需要通过退款查询接口获取结果

7、一个月之前的订单申请退款频率限制为:5000/min

8、同一笔订单多次退款的请求需相隔1分钟

交互

退款状态转变如下:

9dd495e0_5151444.png

请求参数必填

参数名 变量 类型[长度限制] 必填 描述

微信支付订单号 transaction_id string[1, 32] 二选一 body原支付交易对应的微信订单号 示例值:1217752501201407033233368018

商户订单号 out_trade_no string[6, 32] 二选一 body原支付交易对应的商户订单号 示例值:1217752501201407033233368018

商户退款单号 out_refund_no string[1, 64] 是 body商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-|*@ ,同一退款单号多次请求只退一笔。 示例值:1217752501201407033233368018

退款原因 reason string[1, 64] 否 不一定要填写

金额信息 amount object 是 body订单金额信息

* 退款金额 refund int 是 退款金额,单位为分,只能为整数,不能超过原订单支付金额。示例值:888

* 原订单金额 total int 是 原支付交易的订单总金额,单位为分,只能为整数。示例值:888


相关文章
|
14天前
|
API 开发者
微信native支付对接案例详解
本文详细介绍了微信Native支付的对接流程,包括效果展示、产品介绍、接入前准备、开发指引、API列表、支付通知等,并强调了只有通过微信认证的服务号才能对接微信支付。每年需支付300元认证费用。
28 3
|
2月前
|
Web App开发 移动开发 前端开发
H5微信外支付(移动端浏览器)
H5微信外支付(移动端浏览器)
55 1
 H5微信外支付(移动端浏览器)
|
2月前
|
移动开发 安全 API
微信H5支付--微信JS-SDK支付--点金计划
本文详细介绍了微信H5支付和JS-SDK支付的原理、配置和开发流程,涵盖了H5支付在移动端浏览器外唤起微信支付的细节,以及JS-SDK支付在微信内置浏览器中完成支付的相关注意事项。文章还针对微信支付常见问题,提供了解决方案和代码示例。最后,文章深入解析了微信支付点金计划,包括商家小票的自定义开发、API接口以及支付成功后的页面展示逻辑,为开发者提供了完整的开发参考。
115 0
微信H5支付--微信JS-SDK支付--点金计划
|
2月前
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
516 0
|
4月前
|
移动开发 前端开发 JavaScript
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
737 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
770 1
|
2月前
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
160 7
ly~
|
3月前
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
89 6
|
2月前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
261 1