# 统一收单下单并支付页面接口 - Python 示例

## 请求示例

```python
import os
from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
from alipay.aop.api.request.AlipayTradePagePayRequest import AlipayTradePagePayRequest
from alipay.aop.api.domain.AlipayTradePagePayModel import AlipayTradePagePayModel

# 初始化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 = AlipayTradePagePayRequest()
notify_url = os.getenv("ALIPAY_NOTIFY_URL", "").strip()
if notify_url:
    request.notify_url = notify_url  # 真实生产或公网联调时传入；本地没有公网 HTTPS notify_url 时不要传 None、空字符串或占位 URL
request.return_url = "https://your-domain.com/return"  # 默认传入并替换为已验证结果页；仅用户明确关闭同步回跳时省略

model = AlipayTradePagePayModel()
model.out_trade_no = "MERCHANT_ORDER_NO_PLACEHOLDER"             # 商户订单号，必填
model.total_amount = "88.88"                          # 订单总金额，必填，单位为元
model.subject = "Iphone6 16G"                         # 订单标题，必填
model.product_code = "FAST_INSTANT_TRADE_PAY"         # 网站支付固定值，必填
request.biz_model = model

# ⚠️ 网站支付必须使用 page_execute()，不能使用 execute()
# ⚠️ 使用 execute() 将无法获取支付表单，是最常见的集成错误
form_html = client.page_execute(request)
# page_execute 返回的是 HTML 表单字符串，前端需要渲染并自动提交
print(form_html)
```

## 响应示例
### 正常示例
```html
<form name="punchout_form" method="post" action="https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.page.pay&format=json&sign=SIGN_PLACEHOLDER&version=1.0&app_id=20190xxxxxx&sign_type=RSA2&timestamp=2014-07-24+03%3A07%3A50">
<input type="hidden" name="biz_content" value="{&quot;out_trade_no&quot;:&quot;MERCHANT_ORDER_NO_PLACEHOLDER&quot;,&quot;total_amount&quot;:&quot;88.88&quot;,&quot;subject&quot;:&quot;Iphone6 16G&quot;,&quot;product_code&quot;:&quot;FAST_INSTANT_TRADE_PAY&quot;}">
<input type="submit" value="立即支付" style="display:none" >
</form>
<script>document.forms[0].submit();</script>
```
