인도 결제 채널 API에 액세스하는 방법은 무엇인가요? 개발자 가이드

인도 결제 채널 API에 액세스하는 방법은 무엇인가요? 개발자 가이드

# 인도 결제 채널 API 액세스 가이드

인도 결제 플랫폼 전문가로서 인도 내 주요 결제 채널의 API에 액세스하는 방법에 대해 자세히 설명해드리겠습니다.

인도의 주요 결제 게이트웨이

1. 레이저페이
2. PayU 인도
3. CCAvenue
4. 인스타모조
5. 페이티엠 결제 게이트웨이

공통 액세스 프로세스

1. 판매자 계정 등록
- 선택한 전자결제 대행사의 공식 웹사이트를 방문하여 판매자 계정을 등록하세요.
- KYC 서류 제출(일반적으로 PAN 카드, GSTIN, 은행 계좌 증명 등 포함)
- 승인 대기 중(보통 영업일 기준 1~3일 소요)

2. API 키 획득
- 대시보드에서 API 키 쌍을 생성하거나 확인합니다.
- 키 ID/공개키
- 키 비밀/개인 키

3. API 통합 옵션
대부분의 인도 결제 게이트웨이가 지원합니다.
“`
a) 결제 페이지 통합(가장 간단한 방법)
b) 웹훅 실시간 알림 처리
c) SDK 통합(Node.js, PHP, Python 등)
d) 원시 API 호출(RESTful 인터페이스)
“`

레이저페이 샘플 코드(Node.js)

"`javascript
const Razorpay = require('razorpay');
const 인스턴스 = 새로운 Razorpay({
key_id: 'YOUR_KEY_ID',
키_비밀: 'YOUR_KEY_SECRET'
});

//주문 생성하기
const options = {
금액: req.body.price *100, //금액(파이사 단위)(100파이사 = 1루피)
통화: "INR",
영수증: "주문_rcptid_11"
};

instance.orders.create(options).then((order)=>{
res.json(order);
}).catch((err)=>{
res.status(500).send(err);
});
“`

PayU 인도 샘플(PHP)

"`php

// 레이저페이 UPI 인텐트 예시
const options = {
금액: 50000, // ₹500(파이사)
통화: "INR",
메서드: "upi",
customer: {
연락처: "+919876543210",
이메일: "[email protected]"
},
upi_link: true, //UPI 인텐트 흐름 활성화
};

인스턴스.결제링크.생성(옵션);

주요 매개변수에 대한 설명::

  • vpa가상 결제 주소(예: user@upi)
  • 흐름수집 또는 의도(기본값)
  • expire_by:: UPI 링크 유효성(UNIX 타임스탬프)

EMI 옵션 구성

할부 거래 시에는 특별한 주의가 필요합니다:

1TP4테미옵션 = [
'bank' => 'HDFC', //지원되는 은행 코드
'tenure' => [3,6], // 허용되는 할부 개월 수
'interest_rate' => ['3'=>0,'6'=>2] // 기간별 이자율(%)
];

2. 웹훅 보안 구현

JWT 서명 인증(PayU 예시)

jwt에서 디코드 가져오기, InvalidSignatureError

def verify_webhook(request).
시도해 보세요.
페이로드 = 디코드(
요청.headers['X-PayU-서명'], 즉
key='YOUR_MERCHANT_SECRET',
알고리즘=['HS256']
)
반환 페이로드['페이로드']
InvalidSignatureError를 제외합니다.
abort(403) #가 인증되지 않은 요청을 거부합니다.

@app.route('/웹훅', methods=['POST'])
def handle_webhook().
verified_data = verify_webhook(request)

안전 기능::
✅ IP 화이트리스트 유효성 검사(게이트웨이의 공식 IP 세그먼트 확인)
✅ HMAC 서명 이중 확인
✅ 논스 안티 리플레이 공격

API 오류 처리 전략

일반적인 오류 코드 및 응답

HTTP 상태 코드 오류 코드 권장 치료법
400 BAD_REQUEST 매개변수 형식 및 필수 필드 확인
401 승인되지 않음 인증 토큰 다시 생성
429 RATE_LIMITED 인덱스 후퇴 재테스트 메커니즘 구현
502/504 비동기 보상 메커니즘 설계

권장 재시도 로직 구현(Node.js).

비동기 함수 makePaymentRequest(params, retries=3){{
try{
반환 await 게이트웨이.charge(매개변수);
}catch(err){
if(retries>0 && isRetriable(err)){
await 새 프로미스(r=>setTimeout(r,1000*(4-재시도)));
makePaymentRequest(params,retries-1)를 반환합니다;
}
throw err.
}
}

함수 isRetriable(err){
const codes = ['ECONNRESET','ETIMEDOUT','EPIPE'];
반환 codes.includes(err.code) || err.statusCode >= 500;
}

PCI DSS 규정 준수 요구 사항

인도에서 카드 데이터를 처리하기 위해 준수해야 하는 규범입니다:

  1. SAQ A-EP 적용 시나리오::
    ✔️ 완전 호스팅 결제 페이지
    ✔️ 자체 서버를 통해 민감한 데이터가 흐르지 않습니다.

  2. 필요한 조치 목록::
    🔹 분기별 취약성 검사(QSA 인증 도구)
    🔹 연간 침투 테스트 보고서
    🔹 TLS 1.2+ 필수 구현(HSTS 헤더 설정)

3.로깅 사양:
📝 거래 로그를 최소 12개월 동안 보관하세요.
🚫 CVV/CVC 번호 저장 금지
🛡️ PAN 번호 암호화 저장(AES256+ 키 로테이션 사용)

바라트QR 특별 통합

오프라인 판매자의 경우 통합 QR 코드를 지원해야 합니다.

// 바라트QR 콘텐츠 생성 예시(BHIM SDK)
String qrData = 새로운 QRBuilder()
.setMerchantId("MER123456")
.setStoreId("STORE001")
. .setTerminalId("POS01")
.setAmount(new BigDecimal("250.50"))
.buildBharatQRString(); .

//응답 형식 사양
{
"qrType": "BHARATQR".
"content": "000201010212..." ,
"imageUrl": "https://api.upi.qr/v1/generate?data=..."
}

⚠️ 동적 QR 코드는 일반적으로 10분 동안 유효합니다.

이 고급 콘텐츠가 더욱 견고한 결제 시스템을 구축하는 데 도움이 되길 바랍니다. NPCI 및 RBI 규제 요건은 정기적으로 업데이트되므로 각 플랫폼에 대한 최신 공식 문서를 참조하시기 바랍니다. 특정 게이트웨이에 대한 자세한 구현 방법은 특정 플랫폼에 맞는 가이드를 제공해 드릴 수 있습니다.