테스트 사이트 - 개발 중인 베타 버전입니다

토스페이 연결 중인데 헤더에 값을 넘겨주라고 하는데 무슨 말인가요? 채택완료

세진컴퓨터랜드 2년 전 조회 1,747

토스페이먼트 결제 연동중인데 아래처럼
연결했는데 테스트 결제내역을 볼 수없길래
토스쪽에 문의 메일을 보냈습니다.

</p>

<p><html>

  <head>

    <script src="<a href="https://js.tosspayments.com/v1/payment"></script>" target="_blank" rel="noopener noreferrer">https://js.tosspayments.com/v1/payment"></script></a>

  </head>

  <body>

    <section>

      <!-- ... -->

      <span>총 주문금액</span>

      <span>15,000 원</span>

      <button id="payment-button">15,000원 결제하기</button>

    </section>

    <script>

      var clientKey = 'test_ck_Z0RnYX2w532gxz2jkPVNeyqApQEJ'

      var tossPayments = TossPayments(clientKey)</p>

<p>      var button = document.getElementById('payment-button') // 결제하기 버튼</p>

<p>      button.addEventListener('click', function () {

        tossPayments.requestPayment('카드', {

          amount: 15000,

          orderId: 'xCyroSCYYpZumYCyxmBDh',

          orderName: '토스 티셔츠 외 2건',

          customerName: '박토스',

          successUrl: '<a href="http://localhost:8080/success'," target="_blank" rel="noopener noreferrer">http://localhost:8080/success',</a>

          failUrl: '<a href="http://localhost:8080/fail'," target="_blank" rel="noopener noreferrer">http://localhost:8080/fail',</a>

        })

      })

    </script>

  </body>

</html></p>

<p>


https://docs.tosspayments.com/guides/using-api/authorization#%EC%9D%B8%EC%A6%9D

위의 페이지를 보여주면서 http헤더에 포함되어야 한다고 하는데

</p>

<p>Authorization: Basic dGVzdF9za19PeUwwcVo0RzFWT0xvYkI2S3d2cm9XYjJNUVlnOg==</p>

<p>

윈 부분을 어디에 어떻게 추가해야 하나요?

일단 Basic 다음의 값은 {secret key}:를 base62 인코딩한 값이란 것은 알겠습니다.

 
그럼 위의 Authorization 부분은 어디에 추가해야 하나요?

 

혹시방식은

</p>

<p>header ("Authorization: Basic" .base64_encode($secret key));</p>

<p>

인가요? 그럼 위치는 어디인가요? htm테그보다 위인가요?

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
플래토
2년 전

https://tossdev.github.io/gettingstarted.html

여기를 보시면

PHP영역에

</p>

<p>$arrayBody = array();

$arrayBody["orderNo"] = "1";

$arrayBody["amount"] = 10000;

$arrayBody["amountTaxFree"] = 0;

$arrayBody["productDesc"] = "토스티셔츠";

$arrayBody["apiKey"] = "sk_test_w5lNQylNqa5lNQe013Nq";

$arrayBody["autoExecute"] = true;

$arrayBody["resultCallback"] = "<a href="https://YOUR-SITE.COM/callback";" target="_blank" rel="noopener noreferrer">https://YOUR-SITE.COM/callback";</a>

$arrayBody["retUrl"] = "<a href="http://YOUR-SITE.COM/ORDER-CHECK";" target="_blank" rel="noopener noreferrer">http://YOUR-SITE.COM/ORDER-CHECK";</a>

$arrayBody["retCancelUrl"] = "<a href="http://YOUR-SITE.COM/close";" target="_blank" rel="noopener noreferrer">http://YOUR-SITE.COM/close";</a>

$jsonBody = json_encode($arrayBody);</p>

<p>$ch = curl_init('<a href="https://pay.toss.im/api/v2/payments');" target="_blank" rel="noopener noreferrer">https://pay.toss.im/api/v2/payments');</a>

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonBody);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'Content-Type: application/json',

'Content-Length: ' . strlen($jsonBody))

);   //이 영역이 헤더입니다.  그 값은 $jsonBody 라는 변수로 위에서 대입한것이구요</p>

<p>$result = curl_exec($ch);

curl_close($ch);</p>

<p>echo "Response: ".$result;</p>

<p>

 

로 되어있네요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

2년 전

내용을 잘 이해한건지 모르겠지만

https://docs.tosspayments.com/guides/payment-widget/integration

https://docs.tosspayments.com/reference

이렇게 2가지가 header를 전달하고 안 하고 약간 다르긴한데

PaymentWidget를 사용해서 자바스크립트만을 가지고 데이터를 전달할 수 있게 하는건지는...

그리고 successUrl 를 던지는 구간이라면 결제창띄우는 것 까지만의 구간일테고

결제가 완료되면 http://localhost:8080/success 이 구간으로 값이 들어 올 것이고

그 값과 현재 결제하려는 값을 비교하여 [결제승인]구간으로 넘어가야 하지 않을까 생각합니다.

 

따라서 저 헤더를 추가하는 구간은

success페이지 내에서 [결제승인]을 확인하는 구간에서 javascript 코드가 아닌 서버단에서 통신을 할 때 사용되어야 합니다.

 

큰 흐름의 순서는 [결제창 띄우고] -> [success or fail ==> success] -> [결제상황 검토 후 결제승인] -> [결제승인 응답 및 디비처리] 이런식이겠네요

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인