Zum Inhalt springen
CoinsSendEntwickler
Payments-Dokumentation

Python Example: Creating a Static Wallet

Markdown öffnenAgent einrichten

Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.

import base64
import hashlib
import json
import os
import requests
def canonical_json(payload):
encoded = json.dumps(
payload,
ensure_ascii=False,
separators=(',', ':'),
allow_nan=False,
)
escaped = []
for character in encoded:
codepoint = ord(character)
if character == '/':
escaped.append(r'\/')
elif codepoint < 0x80:
escaped.append(character)
elif codepoint <= 0xFFFF:
escaped.append(f'\\u{codepoint:04x}')
else:
codepoint -= 0x10000
escaped.append(f'\\u{0xD800 + (codepoint >> 10):04x}')
escaped.append(f'\\u{0xDC00 + (codepoint & 0x3FF):04x}')
return ''.join(escaped)
def legacy_sign(body, api_key):
payload_base64 = base64.b64encode(body.encode('utf-8')).decode('ascii')
return hashlib.md5((payload_base64 + api_key).encode('utf-8')).hexdigest()
merchant_id = os.environ['COINSSEND_MERCHANT_ID']
api_key = os.environ['COINSSEND_API_KEY']
payload = {
'network': 'tron',
'coin': 'usdt',
'type': 'static',
'label': 'Checkout deposits',
'webhook_url': 'https://merchant.example/coinssend/webhook',
}
body = canonical_json(payload)
response = requests.post(
'https://api.coinssend.com/v1/wallet-address',
headers={
'Content-Type': 'application/json',
'Merchant': merchant_id,
'Sign': legacy_sign(body, api_key),
},
data=body,
timeout=15,
)
result = response.json()
if not response.ok:
raise RuntimeError(result.get('error') or result.get('message') or f'HTTP {response.status_code}')
print(result['data']['address'], result['data']['qr_code_url'])

Static-wallet creation has no request idempotency contract. Do not retry this POST automatically after a timeout. The asset pair is an example only; discover current values through GET /v1/coins-and-fee.