退款

入口

    {api_domain}/upay/v2/refund

签名验证

请参考签名机制文档

请求参数说明

参数 参数名称 类型 必填 描述 范例
terminal_sn 收钱吧终端ID String(32) Y 收钱吧终端ID "00101010029201012912"
sn 收钱吧唯一订单号 String(16) N 收钱吧系统内部唯一订单号 "7892259488292938"
client_sn 商户订单号 String(32) N 商户系统订单号。 "7654321132"
refund_request_no 退款序列号 String(20) Y 商户退款所需序列号,用于唯一标识某次退款请求,以防止意外的重复退款。正常情况下,对同一笔订单进行多次退款请求时该字段不能重复;而当通信质量不佳,终端不确认退款请求是否成功,自动或手动发起的退款请求重试,则务必要保持序列号不变 "23030349"
operator 操作员 String(64) Y 执行本次退款的操作员 "Obama"
refund_amount 退款金额 String(10) Y 退款金额 "100"
extended 扩展参数集合 JSON map N 收钱吧与特定第三方单独约定的参数集合,json格式,最多支持24个字段,每个字段key长度不超过64字节,value长度不超过256字节 { "goods_tag": "beijing"}
goods_details 商品详情 JSON N goods_details的值为数组,每一个元素为json,包含五个字段:
goods_id商品的编号;
goods_name商品名称;
quantity商品数量;
price商品单价,单位为分;
promotion_type优惠类型,0:没有优惠,收钱吧不处理单品信息 1: 支付机构优惠,收钱吧处理单品信息并上送到支付机构
"goods_details": [{"goods_id": "wx001","goods_name": "苹果笔记本电脑","quantity": 1,"price": 2,"promotion_type": 0},{"goods_id": "wx002","goods_name":"tesla","quantity": 1,"price": 2,"promotion_type": 1}]
reflect 反射参数 String(64) N 任何调用者希望原样返回的信息,可以用于关联商户ERP系统的订单或记录附加订单内容 "{ \"tips\": \"200\" }"

sn与client_sn不能同时为空,优先按照sn查找订单,如果没有,再按照client_sn查询

请求参数中关于goods_details说明

字段名称 数值格式 长度 字段描述
goods_id String必填 32 商品的编号
goods_name String必填 32 商品名称,如ipad
refund_amount Number选填 10 商品退款金额,单位为分。
若存在单品有优惠的订单,且订单需要部分退款时,商品退款金额必传。
quantity Number必填 10 商品数量,如10
price Number必填 10 商品单价,单位为分,如2000。
promotion_type Number必填 1 优惠类型,0表示没有优惠,1表示支付机构优惠,为1会把相关信息送到支付机构

同步返回参数说明

参数 参数名称 类型 必填 描述 范例
result_code 结果码 String Y 结果码表示接口调用的业务逻辑是否成功 "REFUND_SUCCESS"
error_code 错误码 String N 参考附录:业务执行错误码列表 "ACCOUNT_BALANCE_NOT_ENOUGH"
error_message 错误消息 String N 参考附录:业务执行错误码列表 "商户余额不足"
terminal_sn 收钱吧终端ID String(32) Y 收钱吧终端ID,可使用英文字母和数字 "103939292020"
sn 收钱吧唯一订单号 String(16) Y 收钱吧系统内部唯一订单号 "7894259244061958"
client_sn 商户订单号 String(64) Y 商户系统订单号。 "22345677767776"
status 退款流水状态 String(32) Y 本次退款对应的流水的状态 "SUCCESS"
order_status 订单状态 String(32) Y 当前订单状态 "REFUNDED"
payway 支付方式 String(32) Y 订单支付方式 "3"
payway_name 支付方式名称 String(128) Y "微信"
trade_no 支付平台的订单凭证号 String(64) Y 支付宝或微信的订单号 "2006101016201512090096528672"
total_amount 交易总金额 String(10) Y 原始交易实收金额 "100"
net_amount 剩余金额 String(10) Y 实收金额减退款金额 "0"
settlement_amount 本次操作金额 String(10) Y 本次操作退款金额 "100"
finish_time 退款动作在收钱吧的完成时间 String(13) N 时间戳,本次退款动作在收钱吧的完成时间。退款成功有值返回。 "1449646835244"
channel_finish_time 退款动作在支付平台完成的时间 String(13) N 时间戳,本次退款动作在微信或支付宝的完成时间。退款成功有值返回。 "1449646835221"
subject 商品概述 String(32) Y 交易时候的商品概述 "wx"
operator 操作员 String(32) Y 执行本次退款的操作员 "Obama"

返回的状态请参考附录

退款返回示例

  1. 退款成功

     {
         "result_code": "200",
         "biz_response": {
             "result_code": "REFUND_SUCCESS",
             "data": {
                 "sn": "7894259244067218",
                 "client_sn": "12345677767776",
                 "status": "SUCCESS",
                 "payway": "3",
                 "sub_payway": "1",
                 "order_status": "REFUNDED",
                 "trade_no": "2006101016201512080095793262",
                 "total_amount": "1",
                 "net_amount": "0",
                 "finish_time": "1449563206776",
                 "channel_finish_time": "1449563206632"
             }
         }
     }
    
  2. 退款失败

     {
         "result_code": "200",
         "biz_response": {
             "result_code": "FAIL",
             "error_code": "UPAY_REFUND_INVALID_ORDER_STATE",
             "error_message": "订单已全额退款,可退金额不足"
         }
     }
    

退款接口接入过程常见问题

1.微信正式商户退款:

由于微信系统业务变更,现新签约的微信正式商户(即是微信支付特约商户),默认都是没有退款权限的(即不能微信退款)。微信支付特约商户若想开通退款权限,需要将退款权限授权给服务商(即收钱吧)。特约商户开通API退款权限需联系服务商,服务商来发起授权邀请,特约商户签署证明函确认授权,相关授权流程请登陆网址: https://kf.qq.com/faq/170606Rnyq2u170606MJZNVB.html。

具体操作:

1、特约商户超级管理员登录商户平台:https://pay.weixin.qq.com

2、进入产品中心 - 我授权的产品 - 找到我的服务商 "1238313502喔噻互联网科技有限公司" - 服务商API退款授权 - 点击授权;

2.退款可以在订单支付完成后多久以内可以提交请求?

三个月以内都可以进行退款。

3.可以部分退款吗?手续费怎么算?

退款接口,不限制退款次数,可操作至剩余金额为0。退款成功后,手续费按照退款金额占订单金额比例系数乘以订单总手续费进行手续费退还。

4.一笔退款不能重复使用退款序列号,不然退款会失败。

5.都可以使用哪些参数去退款?

可以使用trade_no,sn,client_sn去退款,注:使用trade_no和sn退款时需要将参数传入到退款请求参数sn里。

6.退款发起后金额什么时候到达消费者账户内?

这个需要联系支付宝、微信等支付渠道,我们拿到支付渠道返回的状态后就会返回结果,至于金额是否立即到帐,需要联系支付渠道。

results matching ""

    No results matching ""