Binance Pay integration for crypto payments. Send, receive, and accept cryptocurrency payments with the world's largest exchange.
71
Quality
60%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./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 |
45f9fac
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.