빠른 시작: 5분 만에 결제 통합 테스트하기

Team 2 min read 41 views

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 방식으로 전송되며, signsign_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

프로덕션 환경으로 전환하기

전체 참조: API 문서 · 실시간 테스트: 샌드박스 플레이그라운드

태그: api, sandbox, integration, webhook

← 모든 게시물