Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.
import base64import hashlibimport jsonimport 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.