Haru
Haru10mo ago

결제 파라미터 관련 문의 드립니다.

상점ID: qomicszpod 문의 내용: 저희가 현재 결제 위젯을 사용하여 결제 테스트를 직접 하고 있는데, 결제 승인이 완료되면 사용자에게 결제 완료 Email을 보내는 시스템을 구축하려고 합니다. 결제 위젯이 있는 html에서 button.addEventListener("click", function () { paymentWidget.requestPayment({ orderId: generateRandomString(), amount: amount, orderName: "test Product", successUrl: window.location.href + "/success.php", failUrl: window.location.href + "/fail.php", customData: { customerEmail: "test", customerName: "test", customerMobilePhone: "test" } }) 위와 같이 작성하였고, 결제가 완료되어 success.php로 다이렉트 될 때, success.php에서 email 정보를 받아, 메일을 보내려고 합니다. sucess.php에서 확인 결과, payment key, orderId, amout만 받는 것을 확인했습니다. 혹시, 저 3개 외 나머지 파라미터를 받을 수 있는 방법이 있을까요??
13 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
김차장
김차장10mo ago
successUrl 은 인증완료를 의미하는것이라서 승인완료와는 의미가 다릅니다 어떻게 구상하시는지 정확하게는 모르지만 이메일을 보내시는것은 어차피 backend 로 처리하시지 않을까요? 맞다면 승인응답을 확인하셔서 이메일을 발송하시면 됩니다
Haru
HaruOP10mo ago
success.php가 승인 완료아닌가요.?
Ayaan이안
Ayaan이안10mo ago
인증완료입니다. success.php에서 CURL을 통해 TossPayments API 승인요청을 주셔야 승인됩니다.
Ayaan이안
Ayaan이안10mo ago
코어 API | 토스페이먼츠 개발자센터
토스페이먼츠 API 엔드포인트(Endpoint)와 객체 정보, 파라미터, 요청 및 응답 예제를 살펴보세요.
Haru
HaruOP10mo ago
$curlHandle = curl_init($url); curl_setopt_array($curlHandle, [ CURLOPT_POST => TRUE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_HTTPHEADER => [ 'Authorization: Basic ' . $credential, 'Content-Type: application/json' ], CURLOPT_POSTFIELDS => json_encode($data) ]); success.php에 있는 위의 코드 인가요?
Ayaan이안
Ayaan이안10mo ago
예, 맞습니다. 샘플소스를 바탕으로 구현하셨으면 이런 코드가 있으실겁니다.
<?php
// ...중략

// 토스페이먼츠 API는 시크릿 키를 사용자 ID로 사용하고, 비밀번호는 사용하지 않습니다.
// 비밀번호가 없다는 것을 알리기 위해 시크릿 키 뒤에 콜론을 추가합니다.
$widgetSecretKey = 'test_gsk_docs_OaPz8L5KdmQXkzRz3y47BMw6';
$credential = base64_encode($widgetSecretKey . ':');

// 결제를 승인하면 결제수단에서 금액이 차감돼요.
$url = 'https://api.tosspayments.com/v1/payments/confirm';
$curlHandle = curl_init($url);
curl_setopt_array($curlHandle, [
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => [
'Authorization: Basic ' . $credential,
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => json_encode($data)
]);

$response = curl_exec($curlHandle);
// ...중략
<?php
// ...중략

// 토스페이먼츠 API는 시크릿 키를 사용자 ID로 사용하고, 비밀번호는 사용하지 않습니다.
// 비밀번호가 없다는 것을 알리기 위해 시크릿 키 뒤에 콜론을 추가합니다.
$widgetSecretKey = 'test_gsk_docs_OaPz8L5KdmQXkzRz3y47BMw6';
$credential = base64_encode($widgetSecretKey . ':');

// 결제를 승인하면 결제수단에서 금액이 차감돼요.
$url = 'https://api.tosspayments.com/v1/payments/confirm';
$curlHandle = curl_init($url);
curl_setopt_array($curlHandle, [
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => [
'Authorization: Basic ' . $credential,
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => json_encode($data)
]);

$response = curl_exec($curlHandle);
// ...중략
이 부분을 실행하시게 되면, $response에 결과값이 담기는데요. 이 결과값을 보고 성공한 결제로 판단되면, 가맹점에서 별도로 DB처리하신 이메일정보로 이메일을 보내야합니다. SDK에서 입력받은 정보는 개인정보보호를 위해 되돌려드리지 않아요. (#)
Haru
HaruOP10mo ago
저희가 따로 처리를 해야한다는 말씀이신거군요
Ayaan이안
Ayaan이안10mo ago
네. 맞습니다. 휴대폰결제시와 일부 마스킹된 카드정보를 제외하면, 입력받은 고객정보 값은 돌려드리지 않아요.
Haru
HaruOP10mo ago
아, 이해했습니다. 도움주셔서 감사합니다.
Ayaan이안
Ayaan이안10mo ago
네 감사합니다. 세션이나 DB처리를 하셔서, 해당 success.php에 $response와 $response_code를 바탕으로 결과값 분기를 하는 부분에 이메일 전송 로직을 넣으시면 됩니다.
Haru
HaruOP10mo ago
넵, 알겠습니다!
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?