PAY.JP로 신용 결제 기능을 실현하는 [Java]

8884 단어 Mavenpay.jpJavaWebAPI
개요
PAY.나는 JP 결제 대행 서비스를 제공하는 웹API를 사용해 신용카드 결제 기능을 실현해 보았다.
API를 사용하는 경우 입력한 카드 정보를 PAY로 토큰화합니다.JP에 전송하고 그가 보낸 영패를 바탕으로 PAY.JP에서 결제 대행한다고 합니다.
개발 환경은 Java/Maven입니다.
PAY.JP 계정 만들기
방문공식 사이트"신청"을 클릭하여 계정을 만듭니다.

로그인한 후 로그인하고 왼쪽 API를 사용하여 API 키를 확인합니다.

pom.xml에 추가
다음은pom입니다.xml에 추가합니다.
<dependency>
  <groupId>jp.pay</groupId>
    <artifactId>payjp-java</artifactId>
    <version>0.4.4</version>
</dependency>  
View 생성
이번에는 입력금액을 카드로 결제하는 기능이 시행됐다.
test.html
<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>支払い</title>
</head>
<body>
<form th:action="@{/pay}" method="post">
支払金額(円)<br>
<input type="text" name="price"><br>
カード情報<br>
<script
    type="text/javascript"
    src="https://checkout.pay.jp/"
    class="payjp-button"
    data-key="pk_test_xxxxxxx"
    data-partial="true"
    data-token-name="card"   
></script>
<br>
<button>支払う</button>
</form>
</body>
</html>

script 옵션을 삽입하면 카드 정보를 입력하는 창을 만들 수 있습니다.
데이터-키에 방금 확인한 API 키의 공개 키를 입력합니다.이번에는 테스트 키를 사용했다.공식적인 환경을 이용하려면 신청이 필요할 것 같습니다.
이script 라벨은 <input type="hidden" name="card">와 같은 역할을 하며 입력한 카드 정보는 영패화되어 발송됩니다.
또 이번에는 데이터-token-name='카드'에 따라name='카드'로 변경됐다.기본 상태는 name = "payjp-token"입니다.
이쪽 가이드.에 입력 형식에 대한 자세한 사용자 정의 방법이 기재되어 있으니 참고하십시오.
Controller 만들기
기본적으로 공식적으로 공개된 GiitHub에 실린 코드를 복사하여 붙여넣는다.pay-jp/GitHub
Payjp.앱키에는 비밀 키를, 카지맵에는 결제 금액과 엔화, 신용카드 정보를 설정했다.
testController.java
import java.util.HashMap;
import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import jp.pay.Payjp;
import jp.pay.model.Charge;
import jp.pay.net.RequestOptions;

@Controller
@RequestMapping("")
public class testController {

    @RequestMapping("/")
    public String index() {
        return "test";
    }

    /**pay.jpを通じてクレジット決済をするメソッド
     * @param price 支払金額
     * @param card トークン化されたカード情報
     */
    @RequestMapping("/pay")
    public String creditPay(int price, String card) {

        Payjp.apiKey = "sk_test_xxxxxxxxxxxxx";

        Map<String, Object> chargeMap = new HashMap<String, Object>();
        chargeMap.put("amount", price);//支払金額をセット
        chargeMap.put("currency", "jpy");//日本円をセット
        chargeMap.put("card", card);//カード情報をセット
        try {
            Charge charge = Charge.create(chargeMap);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return "complete";//決済完了画面
    }

}
실행
그럼, 제가 실제로 운전해 볼게요.

나는 순조롭게 운행했다.
이번에는 테스트 환경이기 때문에 카드 번호는 테스트용 번호입니다.테스트 환경에서 카드 번호의 유효성만 검사합니다.
또 아까 관리자 페이지를 보면 매출을 반영할 수 있다.

끝까지 봐주셔서 감사합니다.
첫 투고니까 잘못이 있으면 지적해 주세요!
참고 자료
pay-jp/checkout
pay-jp/GitHub

좋은 웹페이지 즐겨찾기