2025-5-13 coinbase.com完全可以用在跨境支付,Nice
主页:
https://beta.commerce.coinbase.com/
API及webhook
https://beta.commerce.coinbase.com/settings/security
https://beta.commerce.coinbase.com/settings/notifications
当然!以下是如何使用 **Coinbase Commerce API** 在 Flask 应用中完成支付的示例代码:
### 1. **安装必要的库**
使用 `pip` 安装 `Flask` 和 `requests`:
```bash
pip install Flask requests
```
### 2. **配置 Flask 应用**
创建一个简单的 Flask 服务器,与 Coinbase Commerce API 交互:
```python
import requests
from flask import Flask, request, jsonify
app = Flask(__name__)
# Coinbase Commerce API 相关配置
COINBASE_API_KEY = "your_api_key"
COINBASE_API_URL = "https://api.commerce.coinbase.com/charges"
@app.route("/create_payment", methods=["POST"])
def create_payment():
data = request.json
amount = data.get("amount")
currency = data.get("currency", "USD")
description = data.get("description", "Payment via Flask")
headers = {
"Content-Type": "application/json",
"X-CC-Api-Key": COINBASE_API_KEY
}
payment_data = {
"name": "Product Name",
"description": description,
"pricing_type": "fixed_price",
"local_price": {"amount": amount, "currency": currency},
"metadata": {"customer_id": "12345"}
}
response = requests.post(COINBASE_API_URL, json=payment_data, headers=headers)
return jsonify(response.json())
if __name__ == "__main__":
app.run(debug=True)
```
### 3. **测试支付功能**
可以使用 `Postman` 或 `curl` 发送 POST 请求:
```json
{
"amount": "10",
"currency": "USD",
"description": "Test Payment"
}
```
如果 Coinbase 返回支付链接,你可以在前端展示给用户,让他们使用加密货币完成付款。
### 4. **监听支付状态**
你可以使用 **Coinbase Commerce Webhooks** 来监听支付状态:
- 支付成功时,Coinbase 会发送 Webhook 事件到你的服务器。
- 你需要在 Coinbase Commerce 控制台中配置 Webhook URL,并在 Flask 应用中处理请求。
示例 Webhook 监听:
```python
@app.route("/webhook", methods=["POST"])
def webhook():
event = request.json
if event["event"]["type"] == "charge:confirmed":
print("Payment Successful!")
return jsonify({"status": "ok"})
```
### 5. **优化建议**
- **环境变量**:不要将 API 密钥硬编码在代码中,使用 `.env` 文件或 `config` 变量管理。
- **日志记录**:记录支付请求和响应,方便调试。
- **安全性**:确保 Webhook 事件数据来源可信。
你可以在 [Coinbase Commerce API 文档](https://commerce.coinbase.com/docs/api/) 查看更多详细信息。希望这能帮助你完成支付集成! 🚀
import hmac
import hashlib
import json
from flask import Flask, request, jsonify
COINBASE_SHARED_SECRET = "your_webhook_secret"
app = Flask(__name__)
def verify_signature(payload, signature):
computed_signature = hmac.new(COINBASE_SHARED_SECRET.encode(), payload, hashlib.sha256).hexdigest()
return hmac.compare_digest(computed_signature, signature)
@app.route("/webhook", methods=["POST"])
def webhook():
payload = request.data
signature = request.headers.get("X-CC-Webhook-Signature")
if verify_signature(payload, signature):
event = json.loads(payload)
print("Webhook received:", event)
return jsonify({"status": "success"}), 200
else:
return jsonify({"status": "invalid signature"}), 400
if __name__ == "__main__":
app.run(debug=True)
https://www.youtube.com/watch?v=CkglLSopBu0&ab_channel=%E5%A4%96%E8%B4%B8%E9%BA%A6%E5%85%8B
回复删除其实也可以是著名书籍吐槽,用另外一个角度去批判。