Skip to content

申请退款

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

请求参数类型描述
jsonobject声明请求的JSON数据结构
sub_mchidstring子商户号
transaction_idstring微信支付订单号
out_trade_nostring商户订单号
out_refund_nostring商户退款单号
reasonstring退款原因
notify_urlstring退款结果回调url
funds_accountstring退款资金来源
amountobject金额信息
refundinteger退款金额
fromobject[]退款出资账户及金额
accountstring出资账户类型
amountinteger出资金额
totalinteger原订单金额
currencystring退款币种
goods_detailobject[]退款商品
merchant_goods_idstring商户侧商品编码
wechatpay_goods_idstring微信侧商品编码
goods_namestring商品名称
unit_priceinteger商品单价
refund_amountinteger商品退款金额
refund_quantityinteger商品退货数量
php
$instance->v3->refund->domestic->refunds->postAsync([
  'json' => [
    'sub_mchid' => '1900000109',
    'transaction_id' => '1217752501201407033233368018',
    'out_trade_no' => '1217752501201407033233368018',
    'out_refund_no' => '1217752501201407033233368018',
    'reason' => '商品已售完',
    'notify_url' => 'https://weixin.qq.com',
    'funds_account' => 'AVAILABLE',
    'amount' => [
      'refund' => 888,
      'from' => [[
        'account' => 'AVAILABLE',
        'amount' => 444,
      ],],
      'total' => 888,
      'currency' => 'CNY',
    ],
    'goods_detail' => [[
      'merchant_goods_id' => '1217752501201407033233368018',
      'wechatpay_goods_id' => '1001',
      'goods_name' => 'iPhone6s 16G',
      'unit_price' => 528800,
      'refund_amount' => 528800,
      'refund_quantity' => 1,
    ],],
  ],
])
->then(static function(\Psr\Http\Message\ResponseInterface $response) {
  print_r(json_decode((string) $response->getBody(), true));
})
->wait();
php
$instance->chain('v3/refund/domestic/refunds')->postAsync([
  'json' => [
    'sub_mchid' => '1900000109',
    'transaction_id' => '1217752501201407033233368018',
    'out_trade_no' => '1217752501201407033233368018',
    'out_refund_no' => '1217752501201407033233368018',
    'reason' => '商品已售完',
    'notify_url' => 'https://weixin.qq.com',
    'funds_account' => 'AVAILABLE',
    'amount' => [
      'refund' => 888,
      'from' => [[
        'account' => 'AVAILABLE',
        'amount' => 444,
      ],],
      'total' => 888,
      'currency' => 'CNY',
    ],
    'goods_detail' => [[
      'merchant_goods_id' => '1217752501201407033233368018',
      'wechatpay_goods_id' => '1001',
      'goods_name' => 'iPhone6s 16G',
      'unit_price' => 528800,
      'refund_amount' => 528800,
      'refund_quantity' => 1,
    ],],
  ],
])
->then(static function(\Psr\Http\Message\ResponseInterface $response) {
  print_r(json_decode((string) $response->getBody(), true));
})
->wait();
php
$instance['v3/refund/domestic/refunds']->postAsync([
  'json' => [
    'sub_mchid' => '1900000109',
    'transaction_id' => '1217752501201407033233368018',
    'out_trade_no' => '1217752501201407033233368018',
    'out_refund_no' => '1217752501201407033233368018',
    'reason' => '商品已售完',
    'notify_url' => 'https://weixin.qq.com',
    'funds_account' => 'AVAILABLE',
    'amount' => [
      'refund' => 888,
      'from' => [[
        'account' => 'AVAILABLE',
        'amount' => 444,
      ],],
      'total' => 888,
      'currency' => 'CNY',
    ],
    'goods_detail' => [[
      'merchant_goods_id' => '1217752501201407033233368018',
      'wechatpay_goods_id' => '1001',
      'goods_name' => 'iPhone6s 16G',
      'unit_price' => 528800,
      'refund_amount' => 528800,
      'refund_quantity' => 1,
    ],],
  ],
])
->then(static function(\Psr\Http\Message\ResponseInterface $response) {
  print_r(json_decode((string) $response->getBody(), true));
})
->wait();
php
$response = $instance->v3->refund->domestic->refunds->post([
  'json' => [
    'sub_mchid' => '1900000109',
    'transaction_id' => '1217752501201407033233368018',
    'out_trade_no' => '1217752501201407033233368018',
    'out_refund_no' => '1217752501201407033233368018',
    'reason' => '商品已售完',
    'notify_url' => 'https://weixin.qq.com',
    'funds_account' => 'AVAILABLE',
    'amount' => [
      'refund' => 888,
      'from' => [[
        'account' => 'AVAILABLE',
        'amount' => 444,
      ],],
      'total' => 888,
      'currency' => 'CNY',
    ],
    'goods_detail' => [[
      'merchant_goods_id' => '1217752501201407033233368018',
      'wechatpay_goods_id' => '1001',
      'goods_name' => 'iPhone6s 16G',
      'unit_price' => 528800,
      'refund_amount' => 528800,
      'refund_quantity' => 1,
    ],],
  ],
]);
print_r(json_decode((string) $response->getBody(), true));
php
$response = $instance->chain('v3/refund/domestic/refunds')->post([
  'json' => [
    'sub_mchid' => '1900000109',
    'transaction_id' => '1217752501201407033233368018',
    'out_trade_no' => '1217752501201407033233368018',
    'out_refund_no' => '1217752501201407033233368018',
    'reason' => '商品已售完',
    'notify_url' => 'https://weixin.qq.com',
    'funds_account' => 'AVAILABLE',
    'amount' => [
      'refund' => 888,
      'from' => [[
        'account' => 'AVAILABLE',
        'amount' => 444,
      ],],
      'total' => 888,
      'currency' => 'CNY',
    ],
    'goods_detail' => [[
      'merchant_goods_id' => '1217752501201407033233368018',
      'wechatpay_goods_id' => '1001',
      'goods_name' => 'iPhone6s 16G',
      'unit_price' => 528800,
      'refund_amount' => 528800,
      'refund_quantity' => 1,
    ],],
  ],
]);
print_r(json_decode((string) $response->getBody(), true));
php
$response = $instance['v3/refund/domestic/refunds']->post([
  'json' => [
    'sub_mchid' => '1900000109',
    'transaction_id' => '1217752501201407033233368018',
    'out_trade_no' => '1217752501201407033233368018',
    'out_refund_no' => '1217752501201407033233368018',
    'reason' => '商品已售完',
    'notify_url' => 'https://weixin.qq.com',
    'funds_account' => 'AVAILABLE',
    'amount' => [
      'refund' => 888,
      'from' => [[
        'account' => 'AVAILABLE',
        'amount' => 444,
      ],],
      'total' => 888,
      'currency' => 'CNY',
    ],
    'goods_detail' => [[
      'merchant_goods_id' => '1217752501201407033233368018',
      'wechatpay_goods_id' => '1001',
      'goods_name' => 'iPhone6s 16G',
      'unit_price' => 528800,
      'refund_amount' => 528800,
      'refund_quantity' => 1,
    ],],
  ],
]);
print_r(json_decode((string) $response->getBody(), true));
返回字典类型描述
refund_idstring微信支付退款号
out_refund_nostring商户退款单号
transaction_idstring微信支付订单号
out_trade_nostring商户订单号
channelstring退款渠道
user_received_accountstring退款入账账户
success_timestring退款成功时间
create_timestring退款创建时间
statusstring退款状态
funds_accountstring资金账户
amountobject金额信息
totalinteger订单金额
refundinteger退款金额
fromobject[]退款出资账户及金额
accountstring出资账户类型
amountinteger出资金额
payer_totalinteger用户支付金额
payer_refundinteger用户退款金额
settlement_refundinteger应结退款金额
settlement_totalinteger应结订单金额
discount_refundinteger优惠退款金额
currencystring退款币种
refund_feenumber手续费退款金额
promotion_detailobject[]优惠退款信息
promotion_idstring券ID
scopestring优惠范围
typestring优惠类型
amountinteger优惠券面额
refund_amountinteger优惠退款金额
goods_detailobject[]商品列表
merchant_goods_idstring商户侧商品编码
wechatpay_goods_idstring微信侧商品编码
goods_namestring商品名称
unit_priceinteger商品单价
refund_amountinteger商品退款金额
refund_quantityinteger商品退货数量

参阅 官方文档 官方文档 官方文档 官方文档

Published on the GitHub by TheNorthMemory