支付状态

支付状态

Pay-In 状态

状态 值 说明
待付款 Pending 已创建 Payment Request,等待客户转账
付款成功 Paid 银行已确认收到款项
已拒绝 Rejected 该笔交易被拒绝(例如金额不符)

Pay-Out 状态

状态 值 说明
处理中 Pending 已收到请求,等待系统处理
转账成功 Paid 已成功转账至目标账户
已拒绝 Rejected 转账失败(例如目标账户信息不正确)

重要:请始终检查 Response Body 中的 status

HTTP status code 200 只表示服务器已成功接收请求 — 你必须始终检查 JSON response body 中的 status 字段。

{
  "status": "OK",       ← 检查此处
  "description": "Success",
  "data": {
    "Status": "Pending"  ← 并检查此处的支付状态
  }
}

Python 检查示例:

response = requests.post(url, auth=("api", API_KEY), json=payload)
result = response.json()

if result.get("status") != "OK":
    # API 错误 — 查看 description 获取详细信息
    print(f"Error: {result.get('description')}")
else:
    payment_status = result["data"]["Status"]
    payment_id = result["data"]["Id"]
    print(f"Payment {payment_id} status: {payment_status}")

实时状态

除了轮询检查状态外,系统还支持通过 WebSocket 实时接收状态更新,使用从 Pay-In response 中获取的 SessionId 和 WebsocketPath。

const connection = new signalR.HubConnectionBuilder()
  .withUrl(`https://api.please-payment.com/realtime/payment-tx`, {
    skipNegotiation: true,
    transport: signalR.HttpTransportType.WebSockets,
    accessTokenFactory: () => API_KEY,
  })
  .build()

await connection.start()
await connection.invoke('JoinPayment', sessionId)

connection.on('payment.completed', (data) => {
  console.log('Payment completed:', data)
})