좋아요. PG사에서 주는 **상점 ID(Merchant ID)와 API Key**를 PHP에서 사용하는 예시를 보여드릴게요. 여기서는 이해를 쉽게 하기 위해 **가상의 PG사 정보**로 예시를 들겠습니다. 실제 PG사마다 변수 이름과 호출 방식은 조금씩 다릅니다.
---
### 1. 기본 상점 정보 저장
```php
<?php
// PG사에서 발급받은 상점 정보
$merchant_id = "12345678"; // 상점 ID
$api_key = "abcd1234secret"; // API Key (비밀키)
```
---
### 2. 결제 요청 데이터 준비
```php
// 결제 요청용 데이터 예시
$order_id = "ORDER20260318"; // 주문 번호
$amount = 50000; // 결제 금액 (원 단위)
$customer = "홍길동"; // 고객 이름
$customer_email = "hong@example.com";
// PG사 API에 보낼 데이터 배열
$payment_data = [
"merchant_id" => $merchant_id,
"order_id" => $order_id,
"amount" => $amount,
"customer" => $customer,
"email" => $customer_email,
"timestamp" => time()
];
```
---
### 3. 서명(Signature) 생성 (API Key 사용)
대부분 PG사는 **서명(Signature)**으로 요청 데이터 위변조 방지를 요구합니다.
```php
// 간단한 예: SHA256 해시로 서명 생성
$signature_string = $merchant_id . $order_id . $amount . $api_key;
$signature = hash('sha256', $signature_string);
$payment_data['signature'] = $signature;
```
---
### 4. API 요청 보내기 (예: cURL)
```php
$ch = curl_init("https://pg.example.com/pay"); // PG사 결제 API URL
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($payment_data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
// PG사 응답 확인
$result = json_decode($response, true);
if($result['status'] == 'success'){
echo "결제 성공! 결제 ID: " . $result['payment_id'];
} else {
echo "결제 실패: " . $result['error_msg'];
}
```
---
💡 **정리**
* `$merchant_id` → PG사에서 발급한 상점 ID
* `$api_key` → PG사에서 발급한 API 비밀키
* `$signature` → 요청 데이터 무결성을 위한 서명
* `$payment_data` → PG사 API에 전달되는 결제 정보
---
원하면 제가 **실제 PG사(예: 이니시스, KG이니시스, 카카오페이 등) 기준 PHP 샘플**로 조금 더 구체적인 코드 예시도 만들어서 보여드릴 수 있습니다.
혹시 그쪽으로 해드릴까요?