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で請求する前に、カスタマーを取得してactivatedがtrueであることを確認してください。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 usSign up for our developer newsletter: Coming Soon
You can unsubscribe at any time. Read our
privacy policy and terms and conditions.
privacy policy and terms and conditions.