開発者/本番公開
Sandbox
Sandboxは、CardVの独立したテスト環境です。本物のお金や商品を使わずに、連携の開発とテストができます。
| Live | Sandbox | |
|---|---|---|
| APIのベースURL | https://b2b.cardv.net/api/v1 | https://sandbox.cardv.net/api/v1 |
| Portal | https://b2b.cardv.net/portal/ | 同じPortalで Sandbox に切り替え |
#利用開始
- まず、CardVによる貴社の審査が承認されている必要があります。
- Portalにサインインし、画面上部で Sandbox を選びます。Sandboxに直接サインインすることはできません。
- 初回は、CardVがSandbox用のアカウントを作成します。Merchant IDはLiveと同じで、テスト用の資金として1,000 USDが入っています。
- Sandboxで、OwnerがSandbox用のAPIキーを作成して表示します。LiveのキーはSandboxでは使えません。
- 必要に応じて、Sandbox用のWebhookを設定します。署名シークレットはLiveとは別です。
#環境ごとに別々のもの
- Sandboxには、専用のAPIキー、ウォレット、注文、Webhook、IP許可リスト、監査ログがあります。
- 設定は共有されません。APIキー、Webhook、IP許可リストは、環境ごとに設定してください。
- Sandboxの注文で本物の商品が購入されることはありません。テスト用のコードは利用できません。
- テスト用の資金に価値はありません。Sandboxでの入金、出金、Liveへの移動はできません。
- テスト用の資金がなくなったら、CardVのサポートに追加を依頼してください。
#テスト用の資金
テスト用の資金は、Liveの注文で本物のお金が使われるのとまったく同じように使われます。失敗したテスト注文も、Liveと同じように返金されます。テスト用の資金の動きは、Portalの取引履歴ページで確認できます。
#テスト用のカタログ
- Sandboxのカタログは小規模で、テスト用の商品だけが入っています。
- SKU IDはLiveとは異なります。 必ずSandboxで
GET/skusを呼び出して確認してください。 - SandboxのIDをLiveの設定にコピーしないでください。逆も同様です。
- Sandboxの価格、在庫状況、納品にかかる時間は、Liveとは異なります。
#テストのチェックリスト
-
GET/accountに貴社のMerchant IDと"api_access_enabled": trueが表示される。 -
GET/balanceが正常に動く。 -
GET/skusを最後のページまで取得でき、availableのSKUだけを注文している。 - 署名付きの注文が成功する。署名が間違っているとHTTP 403が返る。
- すべての注文明細で
expected_unit_priceを送っている。 -
amountを指定した金額指定型SKUの注文が成功する(Sandboxに該当商品がある場合)。 - 同じ注文を2回送る(nonceは新しく、本文と注文番号は同じ)と、同じ
order_idとHTTP 200が返る。残高は1回分しか引き落とされない。 - 同じ注文番号で本文を変えると、
external_order_idのHTTP 400が返る。 - タイムアウトの後、新しい注文番号を作らずに同じ注文を再送している。
-
deliveries[].display_fieldsを読み取り、エンドユーザーに渡している。 -
failed、refunded、partially_succeededに対応している。 - Webhookの検証コードがテストベクターで正しく動き、Sandboxから実際に届いたWebhookも検証できる。重複は無視している。
- HTTP 429の後は
Retry-Afterの秒数だけ待っている。 - ログにAPIキー、署名、コード、エンドユーザーのアカウント情報が含まれていない。
#本番開始前のチェックリスト
- LiveのPortalでLive用のAPIキーを作成し、本番環境のシークレット管理ツールに保存する。
- 設定ファイルのベースURLを
https://b2b.cardv.net/api/v1に変更する。 - Liveのカタログを読み込み、自社の商品をLiveのSKU IDに対応付ける。
- PortalでLiveのウォレットに入金し、残高不足の通知を設定する。
- 任意:LiveのIP許可リストにサーバーのIPアドレスを追加する。
- Live用のWebhookを設定し、その署名シークレットをサーバーに反映する。
- 注文の上限とレート制限をCardVと確認する。
- 少額のLive注文を1件だけ出し、引き落とし額、コード、Webhookを確認する。その後、少しずつ注文量を増やす。
- Portalの取引履歴ページと書き出しデータを使って、毎日照合する。
- すべてのOwnerで2段階認証を有効にする。
#トラブルシューティング
HTTP 403 error code: 1010
Sandboxのホストは、ネットワークの入口となるサービスの後ろにあります。一部のHTTPクライアントでは、
error code: 1010 というプレーンテキストのHTTP 403が返ることがあります。このリクエストはCardVのサーバーに届いていないため、APIキーや署名を変えても解決しません。
- 送信元がわかる
User-Agentを設定してください。 - それでも解決しない場合は、サーバーのIPアドレス、
User-Agent、発生日時をCardVのサポートにお知らせください。 - 代わりにLiveでテストすることは絶対にしないでください。
連携についてご不明な点は、Merchant ID と注文 ID またはリクエスト ID を添えて [email protected] までお問い合わせください。