Home
>
Docs
>
>

Ruby

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


インストール

gem install jamm

またはGemfileに記載:

gem "jamm"

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


初期化

require "jamm"

Jamm.configure(
  client_id: ENV["JAMM_CLIENT_ID"],
  client_secret: ENV["JAMM_CLIENT_SECRET"],
  env: "develop", # テスト用は "develop"、本番用は "prd"
)

On-session決済

response = Jamm::Payment.on_session(
  buyer: { email: "customer@example.com" },
  charge: { description: "Order 1234", initial_amount: 4000, currency: "JPY" },
  redirect: { 
    success_url: "https://yoursite.com/success", 
    failure_url: "https://yoursite.com/failure" 
  },
  one_time: true,
)

カスタマーの状態を確認

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

customer = Jamm::Customer.get("cus-...")

unless customer.activated
  # まだ請求できません — スキップするなど適切に処理してください
end

Off-session決済

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

response = Jamm::Payment.off_session(
  customer: "cus-...",
  charge: { description: "Monthly plan", initial_amount: 1000, currency: "JPY" },
)

返金・キャンセル

# 全額。当日はキャンセル、それ以降は返金
Jamm::Payment.refund(Jamm::OpenAPI::RefundRequest.new(charge_id: "trx-..."))

# 部分返金
Jamm::Payment.refund(Jamm::OpenAPI::RefundRequest.new(charge_id: "trx-...", amount: 500))

# キャンセルのみ(返金フォールバックなし)
Jamm::Payment.refund(Jamm::OpenAPI::RefundRequest.new(charge_id: "trx-...", cancel_only: true))

Webhook

Jamm::Webhook.verify(data: payload, signature: signature) # 無効な場合はJamm::InvalidSignatureErrorを発生

event = Jamm::Webhook.parse(payload)

if event.event_type == Jamm::OpenAPI::EventType::CHARGE_SUCCESS
  # 注文を確定
end
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