5분 안에 통합 테스트하기
공유된 테스트 자격 증명으로 제공되는 샌드박스 API 플레이그라운드를 이용하세요. 실제 금액이 청구되지 않으며 — 주문이 실제 결제 제공업체에 도달하지 않습니다.
1단계: 샌드박스 자격 증명 받기
/sandbox를 엽니다. 앱 ID, API 키(서명용), 쿼리 키(주문 조회용)를 복사하세요.
2단계: 테스트 주문 생성하기
Playground 양식을 사용하거나 서명된 POST를 /api/createorder로 전송하세요:
curl -X POST "https://your-domain.com/api/createorder" \
-H "Content-Type: application/json" \
-d '{
"appid": "YOUR_SANDBOX_APPID",
"action": "createorder",
"clientip": "127.0.0.1",
"amount": "9.99",
"currency": "USD",
"paymentMethod": "alipay",
"description": "Test order",
"notify_url": "https://your-domain.com/api/sandbox/webhook-receiver",
"sign_type": "MD5",
"sign": "CALCULATED_MD5_SIGN"
}'
Playground가 MD5 서명을 자동으로 계산합니다. 알고리즘에 대한 자세한 내용은 API 문서 — 서명을 참조하세요.
3단계: 결제 시뮬레이션
create-order 응답에서 redirectUrl을 열거나(또는 Playground에서 Simulate pay 사용) Simulate Success를 클릭하세요. 게이트웨이가 notify_url로 웹훅을 대기열에 추가합니다.
4단계: 웹훅 서명 확인
콜백은 GET 방식으로 전송되며, sign 및 sign_type=MD5를 포함한 쿼리 매개변수가 함께 전달됩니다. 주문 생성과 동일한 알고리즘과 API 키를 사용하여 검증하십시오.
// Node.js 예제 (개념적)
const crypto = require('crypto');
function verifyCallback(params, apiKey) {
const copy = { ...params };
delete copy.sign;
delete copy.sign_type;
const keys = Object.keys(copy).filter(k => copy[k] != null).sort();
const str = keys.map(k => k + '=' + copy[k]).join('&') + apiKey;
const expected = crypto.createHash('md5').update(str).digest('hex');
return expected === params.sign;
}
서버는 일반 텍스트 success(대소문자 구분 없음)로 응답해야 합니다.
5단계: 주문 상태 조회
GET /api/order?action=order&appid=APPID&key=QUERY_KEY&paymentId=ORDER_ID
또는 공개 엔드포인트를 폴링하세요: GET /api/order/status/:orderId
프로덕션 환경으로 전환하기
- 판매자 계정을 등록하고 실제 운영용
appid,apikey,key를 사용하세요. - 계정 설정 또는 주문별로 실제
notify_url을 설정하세요. - 클라이언트 측 코드에서 API 키를 절대 노출하지 마세요.
- 항상 서버 측에서 웹훅 서명을 확인하세요.
전체 참조: API 문서 · 실시간 테스트: 샌드박스 플레이그라운드