alibaba.mos.onsite.trade.refund (退款)

当交易发生之后一段时间内,由于消费者或者商户的原因需退款,商户可通过退款接口将支付款退还给消费者,喵街将在收到退款请求并验证成功后,按退款规则将支付款按原路退到消费者账号上。 1. 交易超过可退款时间(签约时设置的可退款时间)的订单无法进行退款。 2. 只支持全额退款。

公共参数

请求参数

名称 类型 是否必须 示例值 更多限制 描述
onsite_refund_request OnsiteRefundRequest 必须 交易退款请求
  • └ extend_params
  • String
  • 可选
  • {"ADDRESS":"123"}
  • 业务扩展参数,json格式
  • └ operator_id
  • String
  • 必须
  • 12345678
  • 商户操作员编号
  • └ out_request_no
  • String
  • 必须
  • HZ01RF001
  • 商户退款请求号。标识一次退款请求,同一笔交易多次退款需要保证唯一
  • └ refund_amount
  • Number
  • 必须
  • 8888
  • 退款金额。需要退款的金额,该金额不能大于订单金额(同一笔交易多次退款时累计退款金额不能超过订单金额),单位为分
  • └ refund_reason
  • String
  • 必须
  • 正常退款
  • 退款的原因说明
  • └ mj_shop_id
  • String
  • 必须
  • hzoa
  • 喵街商户号
  • └ store_id
  • String
  • 必须
  • 12345678
  • 商户门店编号。可以是喵街内的商户门店ID,也可以是商户系统内自己的门店ID,其取值的含义由store_id_type定义
  • └ store_id_type
  • String
  • 必须
  • miaojie
  • 商户门店编号的类型。取值:miaojie和out。如果取值为miaojie,则store_id的取值为商户门店在喵街中的编号;如果取值为out,则store_id的取值为商户自己的编号
  • └ terminal_id
  • String
  • 必须
  • NJ_T_001
  • 商户机具终端编号
  • └ order_no
  • String
  • 必须
  • 222222
  • 订单号。可能为外部订单号,也可能为喵街订单号
  • └ app_id
  • String
  • 可选
  • 2018050860091003
  • appId。兼容老退款
  • └ refund_source
  • byte
  • 必须
  • 4
  • 退款来源.1:商家退款,2:用户主动退款,3:过期退款,4:线下POS退款

响应参数

名称 类型 示例值 描述
result ResultDo 交易退款响应
  • data
  • RefundResponse
  • true
  • data
  • └ trade_no
  • String
  • 2015120100222
  • 喵街交易凭证号。必然返回
  • └ out_trade_no
  • String
  • 10001
  • 原支付请求的商户订单号。必然返回
  • └ out_request_no
  • String
  • 10001
  • 外部退款流水号
  • └ refund_status
  • String
  • SUCCESS
  • 退款状态。FAIL退款失败,REFUNDING表示退款请求中,SUCCESS退款成功
  • └ buyer_alipay_id
  • String
  • 2088101117955611
  • 买家在支付宝的用户id
  • └ refund_amount
  • Number
  • 10000
  • 总退款金额。单位为人民币(分)
  • fund_bill_list
  • FundBillDo []
  • alipay_financeaccount
  • 退款资金渠道列表
  • └ amount
  • Number
  • 10000
  • 金额。单位为人民币(分)。必然返回
  • └ extend_params
  • String
  • [{"abc":"123"}]
  • 业务扩展参数,json格式
  • └ sub_fund_channel
  • String
  • 子资金渠道。必然返回。取值为支付宝红包:alipay_coupon 支付宝余额:alipay_account 支付宝集分宝:alipay_point 支付宝余额宝:alipay_financeaccount 蚂蚁花呗:alipay_pcredit 支付宝预付卡:alipay_pcard 喵街储值卡(经支付宝打款):alipay_mj_vcard 喵街购物券(经支付宝打款):alipay_mj_voucher 喵街补贴(经支付宝打款):alipay_mj_subsidy 其它(经支付宝打款):alipay_other
  • └ fund_channel
  • String
  • alipay
  • 打款类型。必然返回。取值为alipay,代表打款类型为支付宝(打款到商户的支付宝账号)
  • └ auth_code_source
  • String
  • MJ
  • 授权码来源。MJ:喵街,M_TAO:手淘,ALIPAY:支付宝
  • └ buyer_nick
  • String
  • 消费者喵街昵称
  • └ err_code
  • Number
  • 错误码
  • └ err_msg
  • String
  • 错误信息
  • └ success
  • Boolean
  • true
  • success

请求示例

  • JAVA
  • .NET
  • PHP
  • CURL
  • Python
  • C/C++
  • NodeJS
TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
AlibabaMosOnsiteTradeRefundRequest req = new AlibabaMosOnsiteTradeRefundRequest();
AlibabaMosOnsiteTradeRefundRequest.OnsiteRefundRequest obj1 = new AlibabaMosOnsiteTradeRefundRequest.OnsiteRefundRequest();
obj1.setExtendParams("{\"ADDRESS\":\"123\"}");
obj1.setOperatorId("12345678");
obj1.setOutRequestNo("HZ01RF001");
obj1.setRefundAmount(8888L);
obj1.setRefundReason("正常退款");
obj1.setMjShopId("hzoa");
obj1.setStoreId("12345678");
obj1.setStoreIdType("miaojie");
obj1.setTerminalId("NJ_T_001");
obj1.setOrderNo("222222");
obj1.setAppId("2018050860091003");
obj1.setRefundSource("4");
req.setOnsiteRefundRequest(obj1);
AlibabaMosOnsiteTradeRefundResponse rsp = client.execute(req, sessionKey);
System.out.println(rsp.getBody());

响应示例

  • XML示例
  • JSON示例
<alibaba_mos_onsite_trade_refund_response>
    <result>
        <data>
            <trade_no>2015120100222</trade_no>
            <out_trade_no>10001</out_trade_no>
            <out_request_no>10001</out_request_no>
            <refund_status>SUCCESS</refund_status>
            <buyer_alipay_id>2088101117955611</buyer_alipay_id>
            <refund_amount>10000</refund_amount>
            <fund_bill_list>
                <fund_bill_do>
                    <amount>10000</amount>
                    <extend_params>[{&quot;abc&quot;:&quot;123&quot;}]</extend_params>
                    <sub_fund_channel></sub_fund_channel>
                    <fund_channel>alipay</fund_channel>
                </fund_bill_do>
            </fund_bill_list>
            <auth_code_source>MJ</auth_code_source>
            <buyer_nick></buyer_nick>
        </data>
        <err_code></err_code>
        <err_msg></err_msg>
        <success>true</success>
    </result>
</alibaba_mos_onsite_trade_refund_response>

异常示例

  • XML示例
  • JSON示例
<error_response>
    <code>50</code>
    <msg>Remote service error</msg>
    <sub_code>isv.invalid-parameter</sub_code>
    <sub_msg>非法参数</sub_msg>
</error_response>

错误码解释

错误码 错误描述 解决方案
isv.REFUND_INVALID_PARAMS 退款操作,传入无效参数 请与API核对请求参数内容
isv.REFUND_AMOUNT_INVALID 退款操作,传入退款金额不等于订单消费总额 在退款金额中输入订单总金额
isp.REFUND_NOT_ALLOWED_ERROR 订单状态不允许退款 请检查订单的状态
isp.REFUND_CREATE_FAILED 退款交易创建操作失败 请稍后再试
isp.EXISTS_REFUNDING_ORDER 存在在途订单 请稍后再尝试退款
isv.REFUND_FAILED_STORE_NOMATCH 退款操作失败,退款的门店与订单的门店不一致 请重新检查退款的订单的门店信息

API工具

如何获得此API

FAQ

返回
顶部