# 统一收单交易退款查询接口 - Python 示例

## 请求示例

```python
import json
from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
from alipay.aop.api.request.AlipayTradeFastpayRefundQueryRequest import AlipayTradeFastpayRefundQueryRequest
from alipay.aop.api.domain.AlipayTradeFastpayRefundQueryModel import AlipayTradeFastpayRefundQueryModel

# 初始化SDK（Python 使用 PKCS#1 格式私钥，Java 使用 PKCS#8 格式，请勿混用）
config = AlipayClientConfig()
config.server_url = "https://openapi.alipay.com/gateway.do"
# 沙箱环境: config.server_url = "https://openapi-sandbox.dl.alipaydev.com/gateway.do"
config.app_id = "<-- 请填写您的AppId，例如：20190xxxxxx -->"
config.app_private_key = "<-- 请填写您的应用私钥，例如：MIIE...（脱敏示例） -->"
config.alipay_public_key = "<-- 请填写您的支付宝公钥，例如：MIIB...（脱敏示例） -->"
config.charset = "utf-8"
config.sign_type = "RSA2"
client = DefaultAlipayClient(alipay_client_config=config)

request = AlipayTradeFastpayRefundQueryRequest()
model = AlipayTradeFastpayRefundQueryModel()
model.out_trade_no = "MERCHANT_ORDER_NO_PLACEHOLDER"  # 商户订单号，与 trade_no 二选一
model.out_request_no = "OUT_REQUEST_NO_PLACEHOLDER"        # 退款请求号，必填，同一笔交易多次部分退款时用于区分
request.biz_model = model

response_content = client.execute(request)
response = json.loads(response_content)
result = response.get("alipay_trade_fastpay_refund_query_response", {})

if result.get("code") == "10000":
    # refund_status: REFUND_SUCCESS 表示退款成功，REFUND_PROCESSING 表示退款处理中
    print(f"退款状态: {result.get('refund_status')}, 退款金额: {result.get('refund_amount')}")
else:
    print(f"调用失败: {result.get('sub_code')} - {result.get('sub_msg')}")
```

## 响应示例
### 正常示例
```json
{
    "code": "10000",
    "msg": "Success",
    "trade_no": "ALIPAY_TRADE_NO_PLACEHOLDER",
    "out_trade_no": "MERCHANT_ORDER_NO_PLACEHOLDER",
    "out_request_no": "OUT_REQUEST_NO_PLACEHOLDER",
    "total_amount": "100.20",
    "refund_amount": "12.33",
    "refund_status": "REFUND_SUCCESS"
}
```
### 异常示例
```json
{
    "code": "20000",
    "msg": "Service Currently Unavailable",
    "sub_code": "isp.unknow-error",
    "sub_msg": "系统繁忙"
}
```