Binance Pay integration for crypto payments. Send, receive, and accept cryptocurrency payments with the world's largest exchange.
45
48%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Medium
Suggest reviewing before use
Fix and improve this skill with Tessl
tessl review fix ./public/skills/0xterrybit/binance-pay/SKILL.mdCrypto payment solution powered by Binance, the world's largest cryptocurrency exchange.
| Variable | Description | Required |
|---|---|---|
BINANCE_PAY_API_KEY | Merchant API Key | Yes |
BINANCE_PAY_SECRET | API Secret Key | Yes |
BINANCE_PAY_MERCHANT_ID | Merchant ID | Yes |
https://bpay.binanceapi.comAPI_KEY="${BINANCE_PAY_API_KEY}"
SECRET="${BINANCE_PAY_SECRET}"
TIMESTAMP=$(date +%s%3N)
NONCE=$(openssl rand -hex 16)
# Generate signature
generate_signature() {
local payload="$1"
local sign_string="${TIMESTAMP}\n${NONCE}\n${payload}\n"
echo -n "$sign_string" | openssl dgst -sha512 -hmac "$SECRET" | cut -d' ' -f2 | tr '[:lower:]' '[:upper:]'
}PAYLOAD='{
"env": {
"terminalType": "WEB"
},
"merchantTradeNo": "'"$(date +%s)"'",
"orderAmount": "10.00",
"currency": "USDT",
"goods": {
"goodsType": "01",
"goodsCategory": "D000",
"referenceGoodsId": "product-001",
"goodsName": "Product Name"
}
}'
SIGNATURE=$(generate_signature "$PAYLOAD")
curl -s -X POST "https://bpay.binanceapi.com/binancepay/openapi/v2/order" \
-H "Content-Type: application/json" \
-H "BinancePay-Timestamp: ${TIMESTAMP}" \
-H "BinancePay-Nonce: ${NONCE}" \
-H "BinancePay-Certificate-SN: ${API_KEY}" \
-H "BinancePay-Signature: ${SIGNATURE}" \
-d "$PAYLOAD" | jq '.'PAYLOAD='{
"merchantTradeNo": "<ORDER_ID>"
}'
SIGNATURE=$(generate_signature "$PAYLOAD")
curl -s -X POST "https://bpay.binanceapi.com/binancepay/openapi/v2/order/query" \
-H "Content-Type: application/json" \
-H "BinancePay-Timestamp: ${TIMESTAMP}" \
-H "BinancePay-Nonce: ${NONCE}" \
-H "BinancePay-Certificate-SN: ${API_KEY}" \
-H "BinancePay-Signature: ${SIGNATURE}" \
-d "$PAYLOAD" | jq '.'PAYLOAD='{
"merchantTradeNo": "<ORDER_ID>"
}'
SIGNATURE=$(generate_signature "$PAYLOAD")
curl -s -X POST "https://bpay.binanceapi.com/binancepay/openapi/v2/order/close" \
-H "Content-Type: application/json" \
-H "BinancePay-Timestamp: ${TIMESTAMP}" \
-H "BinancePay-Nonce: ${NONCE}" \
-H "BinancePay-Certificate-SN: ${API_KEY}" \
-H "BinancePay-Signature: ${SIGNATURE}" \
-d "$PAYLOAD" | jq '.'PAYLOAD='{
"refundRequestId": "'"$(date +%s)"'",
"prepayId": "<PREPAY_ID>",
"refundAmount": "5.00"
}'
SIGNATURE=$(generate_signature "$PAYLOAD")
curl -s -X POST "https://bpay.binanceapi.com/binancepay/openapi/v2/order/refund" \
-H "Content-Type: application/json" \
-H "BinancePay-Timestamp: ${TIMESTAMP}" \
-H "BinancePay-Nonce: ${NONCE}" \
-H "BinancePay-Certificate-SN: ${API_KEY}" \
-H "BinancePay-Signature: ${SIGNATURE}" \
-d "$PAYLOAD" | jq '.'| Currency | Type | Min Amount |
|---|---|---|
| USDT | Stablecoin | 0.01 |
| BUSD | Stablecoin | 0.01 |
| USDC | Stablecoin | 0.01 |
| BTC | Crypto | 0.00001 |
| ETH | Crypto | 0.0001 |
| BNB | Crypto | 0.001 |
| Event | Description |
|---|---|
PAY | Payment completed |
REFUND | Refund processed |
CANCEL | Order cancelled |
# Verify webhook signature
verify_webhook() {
local payload="$1"
local received_sig="$2"
local timestamp="$3"
local nonce="$4"
local sign_string="${timestamp}\n${nonce}\n${payload}\n"
local expected_sig=$(echo -n "$sign_string" | openssl dgst -sha512 -hmac "$SECRET" | cut -d' ' -f2 | tr '[:lower:]' '[:upper:]')
[[ "$received_sig" == "$expected_sig" ]]
}| Status | Description |
|---|---|
INITIAL | Order created |
PENDING | Awaiting payment |
PAID | Payment successful |
CANCELED | Order cancelled |
REFUNDING | Refund in progress |
REFUNDED | Refund completed |
EXPIRED | Order expired |
f45fcb5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.