Payment/iamport

12821 ワード

iamport💸

  • 支払ソリューション
  • 개발 환경과 상관없이 원하는 PG사와의 결제시스템을 연결시켜주는 결제 API
  • iamport複雑な支払い環境を直接実施する必要はありません!
  • [imp_uid]
  • iamportの使用
    1)iamport初期設定
    iamportからログイン後、관리자 페이지で設定する必要があります시스템 설정 - PG설정 (일반결제 및 정기결제)=>会計に必要なPG会社の設定
    デモンストレーション用なら必ずテストモードをチェック!
  • 支払コード実施
  • <!-- 프론트 엔드 --> 
    
      <script
          type="text/javascript"
          src="https://code.jquery.com/jquery-1.12.4.min.js"
        ></script>
        <script
          type="text/javascript"
          src="https://cdn.iamport.kr/js/iamport.payment-1.2.0.js"
        ></script>
        <script
          type="text/javascript"
          src="https://unpkg.com/axios/dist/axios.min.js"
        ></script>
        <script>
          function mypayment() {
            const myAmount = Number(document.getElementById("amount").value);
            const merchant_uid = document.getElementById("merchant_uid").value;
    
            const IMP = window.IMP; // 생략 가능
            IMP.init("가맹점 식별 코드"); // Example: imp00000000
            IMP.request_pay(
              {
                // param
                pg: "html5_inicis",
                pay_method: "card",
                //merchant_uid: merchant_uid, //구매한 carId
                name: "자동차",
                amount: myAmount,
                buyer_email: "[email protected]",
                buyer_name: "홍길동",
                buyer_tel: "010-4242-4242",
                buyer_addr: "서울특별시 강남구 신사동",
                buyer_postcode: "01181",
                m_redirect_url: "", // 모바일 결제후 리다이렉트될 주소!!
              },
              async (rsp) => {
                // callback
                if (rsp.success) {
    
                  console.log(data);
                }
                // );
                else {
                  // 결제 실패시
                  console.log("실패");
                }
              }
            );
          }
        </script>
    
    //환불 구현 코드
      // 아임포트에 결제 취소 요청
      getRefundData = async ({
        impUid,
        refundAmount,
        reason,
        access_token,
        sum,
      }) => {
        const refundData = await axios({
          url: 'https://api.iamport.kr/payments/cancel',
          method: 'post',
          headers: {
            'Content-Type': 'application/json',
            Authorization: `Bearer ${access_token}`, // 아임포트 서버로부터 발급받은 엑세스 토큰
          },
          data: {
            reason: reason, // 가맹점 클라이언트로부터 받은 환불사유
            imp_uid: impUid, // imp_uid를 환불 `unique key`로 입력
            amount: Math.abs(refundAmount), // 가맹점 클라이언트로부터 받은 환불금액
            checksum: sum, // [권장] 환불 가능 금액 입력
          },
        });
    
        const { response } = refundData.data;
    
    
    **支払いと返金プロセスは重要な部分であり、検証が必要な部分が多く、非常に複雑であり、コードを書く際に上記の基本コード以外にも注意すべき点がたくさんあります!!
    勉強して書いているブログ.
    間違った内容があるかもしれませんが、もしあれば、メッセージを残してください.ありがとうございます.
    😊