55 lines
1.6 KiB
Bash
55 lines
1.6 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Submit Test Instruction to AS4 Settlement
|
||
|
|
# Creates and submits a test settlement instruction
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
BASE_URL="${AS4_BASE_URL:-http://localhost:3000}"
|
||
|
|
AUTH_TOKEN="${AS4_AUTH_TOKEN:-}"
|
||
|
|
FROM_MEMBER="${1:-TEST-MEMBER-001}"
|
||
|
|
AMOUNT="${2:-1000.00}"
|
||
|
|
CURRENCY="${3:-USD}"
|
||
|
|
|
||
|
|
INSTR_ID="INSTR-TEST-$(date +%s)"
|
||
|
|
MSG_ID="MSG-TEST-$(date +%s)"
|
||
|
|
CORR_ID="CORR-$(date +%s)"
|
||
|
|
NONCE="nonce-$(date +%s)"
|
||
|
|
|
||
|
|
echo "Submitting test instruction: $INSTR_ID"
|
||
|
|
|
||
|
|
# Calculate payload hash (simplified)
|
||
|
|
PAYLOAD_HASH=$(echo -n "$INSTR_ID$FROM_MEMBER$AMOUNT" | sha256sum | cut -d' ' -f1 | tr '[:lower:]' '[:upper:]')
|
||
|
|
|
||
|
|
curl -X POST "$BASE_URL/api/v1/as4/settlement/instructions" \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
${AUTH_TOKEN:+-H "Authorization: Bearer $AUTH_TOKEN"} \
|
||
|
|
-d "{
|
||
|
|
\"fromMemberId\": \"$FROM_MEMBER\",
|
||
|
|
\"payloadHash\": \"$PAYLOAD_HASH\",
|
||
|
|
\"signatureEvidence\": {},
|
||
|
|
\"as4ReceiptEvidence\": {},
|
||
|
|
\"message\": {
|
||
|
|
\"MessageId\": \"$MSG_ID\",
|
||
|
|
\"BusinessType\": \"DBIS.SI.202\",
|
||
|
|
\"CreatedAt\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",
|
||
|
|
\"FromMemberId\": \"$FROM_MEMBER\",
|
||
|
|
\"ToMemberId\": \"DBIS\",
|
||
|
|
\"CorrelationId\": \"$CORR_ID\",
|
||
|
|
\"ReplayNonce\": \"$NONCE\",
|
||
|
|
\"SchemaVersion\": \"1.0\",
|
||
|
|
\"Instr\": {
|
||
|
|
\"InstrId\": \"$INSTR_ID\",
|
||
|
|
\"ValueDate\": \"$(date -u +%Y-%m-%d)\",
|
||
|
|
\"Currency\": \"$CURRENCY\",
|
||
|
|
\"Amount\": \"$AMOUNT\",
|
||
|
|
\"DebtorAccount\": \"MSA:$FROM_MEMBER:$CURRENCY\",
|
||
|
|
\"CreditorAccount\": \"MSA:TEST-MEMBER-002:$CURRENCY\",
|
||
|
|
\"Charges\": \"SHA\",
|
||
|
|
\"PurposeCode\": \"SETT\"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}" | jq '.'
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "Test instruction submitted: $INSTR_ID"
|