refundByTransactionId
通过微信支付订单号申请退款
使用示例
ts
import type { RefundByTransactionIdOptions, RefundResponse } from 'nest-wxpay'
import { WechatService } from 'nest-wxpay'
import { Injectable, Body, Post } from '@nestjs/common'
@Injectable()
export class Controller {
constructor(private readonly wechatService: WechatService) {}
@Post('refund')
async refund(@Body() options: RefundByTransactionIdOptions): Promise<RefundResponse> {
return this.wechatService.refundByTransactionId(options)
}
}
参数解析
RefundGoodDetail
字段名 | 类型 | 是否必填 | 用途 |
---|---|---|---|
merchant_goods_id | string | 是 | 商户侧商品编号 |
wechatpay_goods_id | string | 否 | 微信支付商品编号 |
goods_name | string | 否 | 商品名称 |
unit_price | number | 是 | 商品单价,单位为分 |
refund_amount | number | 是 | 退款金额,单位为分 |
refund_quantity | number | 是 | 退货数量,单位为分 |
RefundOptions
字段名 | 类型 | 是否必填 | 用途 |
---|---|---|---|
out_refund_no | string | 是 | 商户退款单号 |
reason | string | 否 | 退款原因 |
notify_url | string | 否 | 退款结果通知URL |
funds_account | string | 否 | 资金账户 |
amount | AmountReq | 是 | 退款金额信息 |
goods_detail | RefundGoodDetail[] | 否 | 商品退款详情 |
RefundByOutTradeNoOptions
字段名 | 类型 | 是否必填 | 用途 |
---|---|---|---|
out_refund_no | string | 是 | 商户退款单号 |
reason | string | 否 | 退款原因 |
notify_url | string | 否 | 退款结果通知URL |
funds_account | string | 否 | 资金账户 |
amount | AmountReq | 是 | 退款金额信息 |
goods_detail | RefundGoodDetail[] | 否 | 商品退款详情 |
transaction_id | string | 是 | 微信支付订单号 |
返回参数
RefundGoodDetail
字段名 | 类型 | 是否必填 | 用途 |
---|---|---|---|
merchant_goods_id | string | 是 | 商户侧商品编号 |
wechatpay_goods_id | string | 否 | 微信支付商品编号 |
goods_name | string | 否 | 商品名称 |
unit_price | number | 是 | 商品单价,单位为分 |
refund_amount | number | 是 | 退款金额,单位为分 |
refund_quantity | number | 是 | 退货数量,单位为分 |
Amount
字段名 | 类型 | 是否必填 | 用途 |
---|---|---|---|
total | number | 是 | 订单金额,单位为分 |
refund | number | 是 | 退款金额,单位为分 |
from | FundsFromItem[] | 否 | 资金来源 |
payer_total | number | 是 | 用户支付金额,单位为分 |
payer_refund | number | 是 | 用户退款金额,单位为分 |
settlement_refund | number | 是 | 应结退款金额,单位为分 |
settlement_total | number | 是 | 应结订单金额,单位为分 |
discount_refund | number | 是 | 优惠退款金额,单位为分 |
currency | string | 是 | 货币类型 |
refund_fee | number | 否 | 退款费用,单位为分 |
Promotion
字段名 | 类型 | 是否必填 | 用途 |
---|---|---|---|
promotion_id | string | 是 | 优惠活动ID |
scope | 'GLOBAL' | 'SINGLE' | 是 |
type | 'COUPON' | 'DISCOUNT' | 是 |
amount | number | 是 | 优惠金额,单位为分 |
refund_amount | number | 是 | 优惠退款金额,单位为分 |
goods_detail | RefundGoodDetail[] | 否 | 商品退款详情 |
RefundResponse
字段名 | 类型 | 是否必填 | 用途 |
---|---|---|---|
refund_id | string | 是 | 微信退款单号 |
out_refund_no | string | 是 | 商户退款单号 |
transaction_id | string | 是 | 微信订单号 |
out_trade_no | string | 是 | 商户订单号 |
channel | 'ORIGINAL' | 'BALANCE' | 'OTHER_BALANCE' |
user_received_account | string | 是 | 用户收到的退款账户 |
success_time | string | 否 | 退款成功时间 |
create_time | string | 是 | 退款创建时间 |
status | 'SUCCESS' | 'CLOSED' | 'PROCESSING' |
funds_account | 'UNSETTLED' | 'AVAILABLE' | 'UNAVAILABLE' |
amount | Amount | 是 | 退款金额信息 |
promotion_detail | Promotion[] | 否 | 优惠退款详情 |