Home
>
Docs
>
>

Java

Jamm Java SDKのインストールと利用 — 決済・返金・カスタマー・Webhook。


インストール

Maven

<dependency>
  <groupId>jp.jamm-pay</groupId>
  <artifactId>jamm-sdk</artifactId>
  <version>1.4.0</version>
</dependency>

Gradle

implementation 'jp.jamm-pay:jamm-sdk:1.4.0'

ソース: github.com/jamm-pay/java-sdk


初期化

JammClient client = JammClient.builder()
    .clientId(System.getenv("JAMM_CLIENT_ID"))
    .clientSecret(System.getenv("JAMM_CLIENT_SECRET"))
    .environment(Environment.STAGING) // PRODUCTION | STAGING | DEVELOP | LOCAL
    .build();

On-session決済

OnSessionPaymentResponse response = client.payments().onSessionPayment(
    OnSessionPaymentRequest.newBuilder()
        .setBuyer(Buyer.newBuilder().setEmail("customer@example.com").build())
        .setCharge(InitialCharge.newBuilder().setPrice(4000).setDescription("Order 1234").build())
        .setRedirect(URL.newBuilder()
            .setSuccessUrl("https://yoursite.com/success")
            .setFailureUrl("https://yoursite.com/failure")
            .build())
        .setOneTime(true)
        .build()
);

カスタマーの状態を確認

off-sessionで請求する前に、カスタマーを取得してactivatedtrueであることを確認してください。activatedは契約状況と、該当する場合はKYC状況を反映するため、カスタマーが請求可能かどうかを判断する単一の指標です。

Customer customer = client.customers().get("cus-...");

if (!customer.getActivated()) {
    // まだ請求できません — スキップするなど適切に処理してください
}

Off-session決済(非同期)

請求前にカスタマーのactivatedを確認してください — 上記のカスタマーの状態を確認を参照。

OffSessionPaymentAsyncResponse response = client.payments().offSessionPaymentAsync(
    OffSessionPaymentAsyncRequest.newBuilder()
        .setCustomer("cus-...")
        .setCharge(InitialCharge.newBuilder().setPrice(1000).setDescription("Monthly plan").build())
        .setIdempotencyKey("order-2026-001") // 任意。省略時は自動生成
        .build()
);

返金・キャンセル

client.payments().refund(RefundRequest.newBuilder().setChargeId("trx-...").build());                     // 全額。当日はキャンセル、それ以降は返金
client.payments().refund(RefundRequest.newBuilder().setChargeId("trx-...").setAmount(500).build());      // 部分返金
client.payments().refund(RefundRequest.newBuilder().setChargeId("trx-...").setCancelOnly(true).build()); // キャンセルのみ(返金フォールバックなし)

Webhook

Webhook.verify(contentJson, signature, clientSecret); // 無効な場合はInvalidSignatureExceptionをスロー

Object event = Webhook.parse(jsonBody);
Was this page helpful?
Need help? Coming Soon
Support Center Slack community Contact us
Sign up for our developer newsletter: Coming Soon
You can unsubscribe at any time. Read our
privacy policy and terms and conditions.
jaen