具体的に何を制限でき、ルールに該当するとどうなりますか?
以下のいずれかに対して、決済手段あたりの最大数量を登録します:- 特定の 1 商品 — 商品識別子と、その商品に許可する最大数量を指定する
- 1 つの商品カテゴリ — カテゴリと、そのカテゴリに含まれるすべての商品を合わせて許可する最大数量を指定する
- このルールはハードな拒否であり、レビューキューではありません。より穏やかな結果(警告、手動レビュー、顧客ごとの許容量)を望む場合は、注文作成を呼び出す前に貴社側でそれを構築する必要があります。
- 拒否された試行は、注文に対する通常のリスク拒否です。購入者には中立的なメッセージを表示し、同じ注文を自動的にリトライしないでください。リトライしても同じルールに該当します。
どのエンドポイントがあり、それぞれ何ができますか?
3 つとも同じホスト上の署名付きエンドポイントで、注文作成と同じヘッダー、同じ署名アルゴリズムを使用します。これらは API キーの payin スコープに属するため、出金や送金のみのために発行されたキーでは呼び出せません。
create では何を送信しますか?
どちらの最大数量値も 1 以上でなければなりません。最大数量をゼロにしても商品を完全にブロックすることはできません。商品を購入不可にしたい場合は、その商品を提供しないでください。
同じリクエストで商品制限とカテゴリ制限を同時に設定できますか?
いいえ。2 つのグループはリクエストごとに相互排他です:goodsIdとmaxGoodsQuantityは一緒に指定する必要があります。goodsCategoryとmaxCategoryQuantityは一緒に指定する必要があります。- 1 回の create 呼び出しには、この 2 つのグループのうち1 つしか含められません。
加盟店 ID に関するパラメータエラーが出るのはなぜですか?
ボディ内のmerchantId が、API キーの発行対象である加盟店 ID と一致しなかったためです。3 つのエンドポイントはすべて、他の処理を行う前に両者が一致することを検証し、一致しない場合は A0003 Parameter validation failed に詳細 mid in params is inconsistent with apiKey を付けて呼び出しを拒否します。
同じチェックは subMerchantId にも適用されます。送信する場合、それが存在し、リクエスト内の加盟店 ID に属していなければなりません。そうでない場合、詳細 subMerchantId is invalid or does not belong to the provided merchantId を付けた A0003 が返されます。
これはここで最も多い連携ミスであり、ほぼ常に次の 2 つのいずれかです:別アカウントのキー(本番環境に対するサンドボックスキー、またはサブアカウントのキー)、あるいはコピーしたサンプルに残っていたハードコードされた加盟店 ID です。
何が返され、ruleStatus は何を意味しますか?
create と update はどちらも、識別子とルールのステータスを返します:
ACTIVE はルール自身のライフサイクルを表すものであり、現在有効かどうかを表すものではないことに注意してください。将来の startTime を持つルールは ACTIVE であり、単にまだ開始していないだけです。
create 呼び出しがタイムアウトした場合、冪等性はどのように機能しますか?
merchantRequestId が冪等キーです。同じ merchantRequestId で同一のリクエストを再送すると、2 つ目のルールではなく既存のルールが返されます。タイムアウトからはルールが作成されたかどうか判別できないため、これはタイムアウト後に望ましい動作です。
そこから 2 つのルールが導かれます:
merchantRequestIdは試行ごとではなく、意図するルールごとに 1 つ生成してください。 リトライ時に新しいものを生成すると、ルールが 2 つできてしまいます。- 異なるルールに
merchantRequestIdを再利用しないでください。 異なる内容で冪等キーを再利用した場合に返されるのがA0011Idempotent param mismatch error です。
ルールを変更または停止するにはどうすればよいですか?
update を呼び出し、merchantRequestId または ruleId のいずれかでルールを特定します。どちらか一方が必須で、曖昧さがないため ruleId の方が安全な選択です。
update では制限フィールドはオプションで、create と同じペアリングルールに従います。goodsId を送るときは必ず maxGoodsQuantity を、goodsCategory を送るときは必ず maxCategoryQuantity を送ってください。startTime と endTime を移動することもできます。
ルールを停止するには、ruleStatus を TERMINATED に設定します。削除はありません。終了したルールは inquiry で引き続き読み取ることができ、過去の拒否を説明する必要がある場合に役立ちます。
ルールを読み取るにはどうすればよいですか?
merchantInfo に加えて merchantRequestId または ruleId のいずれかを指定して inquiry を呼び出します。応答は Waffo が保持しているとおりのルール(識別子、ruleStatus、制限設定、有効期間)を返します。
次の 3 つの用途に使用してください:
- create か update かを決める前の、タイムアウト後の照合。
- 貴社側の設定コピーを信頼するのではなく、販売前に実際に有効な内容を検証する。
- 有効だったルールを示して、サポートチームに拒否を説明する。
注文作成について何か変更する必要がありますか?
はい。ルールは、貴社が実際に送信した情報に対してのみ機能します。ルールの登録だけでは何も起こりません。注文作成時に、ルールが登録されている商品識別子および/または商品カテゴリを、購入数量とともに渡す必要があります。商品情報を持たない注文は、数量ルールと照合できません。 実務上の 2 つの注意点:- 両側で同じ識別子を使用してください。
goodsIdとして登録した値は、注文作成時に送信する値と 1 文字ずつ一致していなければなりません。大文字小文字の不一致や、別の内部 SKU 体系が、ルールが「機能しない」よくある原因です。 - カテゴリルールには注文上のカテゴリが必要です。 現在のカタログにカテゴリの概念がない場合は、商品ごとのルールから始める方が手軽です。
すべてのルールを 1 回の呼び出しで一覧取得できますか?
いいえ。inquiry は識別子(ruleId または merchantRequestId)による検索であり、登録したすべてのルールのページ付きリストではありません。そのため、作成したルールの台帳を貴社側で保持し、対象の商品またはカテゴリの横に ruleId を保存してください。
その台帳が、リリース前に監査の基準となるものです。設定ストアと Waffo が一致していると仮定するのではなく、各ルールを inquiry で読み取って比較してください。
変更はどのくらいの速さで有効になりますか?
ルールはそれ自身の有効期間に対して評価されるため:- 過去の
startTimeで作成されたルールは、次の注文から有効です。 - 将来の
startTimeで作成されたルールはその時刻まで何もしません。これが、リリースやフラッシュセールに先立って上限を準備しておくためのきれいな方法です。 - ルールを終了すると適用が停止します。すでに成功した決済は影響を受けません。
inquiry で期待どおりに読み取れることを確認してください。
ルールが発動したとき、購入者の決済にはどのエラーが返されますか?
ルール固有のコードではなく、リスク拒否です。決済は他のリスク判定とまったく同様に、D0001(リスク拒否)または D0002(リスク取引限度額)、HTTP 406 で失敗します。「加盟店自身のルールがこれを拒否した」ことを示すコードはありません。
そこから 2 つのことが導かれます:
- 何を制限したかの記録を貴社側で保持してください。 注文照会および決済通知では、失敗は汎用的な拒否カテゴリの下で報告されるため、事後に拒否を貴社自身のルールに帰属させることはできません。
- 購入者に有用な情報を伝えてください。 コードは貴社が設定した上限と他の拒否を区別しないため、インターフェース上の文言はレスポンスではなく、貴社自身のルールに関する知識に基づく必要があります。
明示的に処理すべきエラーはどれですか?
分岐する価値のあるコードは以下のとおりです。一般的なエラーファミリーは 一般的なエラーのトラブルシューティング に記載されています。
決済側では、登録済みルールに該当した注文はパラメータエラーではなく、リスク拒否として拒否されます。その注文については最終結果として扱ってください。
ルールはサブ加盟店に適用されますか?
ルールはリクエスト内の加盟店 ID に対して登録され、オプションで 1 つのサブ加盟店に絞り込むことができます。複数のサブ加盟店を運営し、すべてに同じ上限を適用したい場合は、サブ加盟店ごとにルールを登録してください。1 つのサブ加盟店にスコープされたルールは他のサブ加盟店をカバーせず、エンドポイントは指定したサブ加盟店が本当に貴社に属していることを検証します。 サブ加盟店モデルに初めて触れる場合は、 マルチブランドとサブ加盟店の構成 から始めてください。すでにある金額制限とはどう違うのですか?
これらは無関係なチェックであり、失敗の仕方も異なります。拒否を診断する際にはこの点が重要です:
数量ルールは 1 件の非常に大きな注文を止めることはできず、金額制限は 100 件の小さな注文を止めることはできません。まとめ買いが問題なら、数量ルールが必要です。
次はどこを見ればよいですか?
- 注文作成フィールドガイド — 注文作成時に渡す商品フィールド。
- 制限、通貨、設定エラー — 金額ベースの上限と、どのコードが何を意味するか。
- 決済結果の確認 — 拒否された決済がどのように報告されるか。
ruleId を添えてサポートにお問い合わせください。