结账成功的回调
在结账成功后,Payfect API 将触发一个回调到指定的 URL。这个回调将使用带有 JSON 数据的 POST 请求。
回调 URL
回调 URL 的确定方式如下:
- 如果在 
Create a Checkout请求期间提供了一个callback_url,那么将使用该 URL。 - 如果在创建结账时没有提供 
callback_url,将使用在仪表板网站 webhook 页面设置的默认回调 URL。 
请求标头
回调请求将包含一个名为 X-Payfect-Signature 的标头。这个标头包含回调数据的加密值。该值出于安全目的进行加密,并应在客户端解密。
解密签名
可以使用以下函数解密 X-Payfect-Signature 标头中的签名:
from cryptography.fernet import Fernet
import json
def decrypt_signature(signature, secret_key):
    fernet = Fernet(secret_key.encode('utf-8'))
    return json.loads(fernet.decrypt(signature.encode('utf-8')).decode('utf-8'))
验证解密后的数据
在解密签名后,验证解密后的数据与原始 POST 请求体中的数据是否匹配至关重要。如果存在差异,可能表明 API 数据已被篡改。在这种情况下,应采取适当措施处理潜在的安全漏洞。
回调 Payload
以下为回调 payload 的格式:
{
  "id": "ed8d24aa-a860-426b-8e56-87cb9f55a081",
  "amount": "20.00",
  "status": "succeeded",
  "currency": "usdt",
  "merchant": "bf065cc8-343d-4419-be7d-ed2190f1df4d",
  "is_livemode": false,
  "payment_intent": "b7c30e83-5439-47b2-ac4d-81c64c1d0174",
  "payment_method": {
    "id": "74fa9095-b553-4607-b282-70ef7597a2e8",
    "payment_method_detail": {
      "network": "tron",
      "currency": "usdt"
    }
  },
  "client_reference_id": "5ae50223-e455-4a72-a48d-fe7d85800e64"
}