開発者/エコシステムとリソース
Dujiao-Next 向け CardV
Dujiao-NextのショップにCardVを仕入れ先として追加できます。CardVのギフトカードやゲームのチャージを自分の商品としてインポートし、価格は自分で設定します。購入者が支払うと、ショップがCardVの残高でCardVから商品を購入し、コードが購入者の注文ページに自動で表示されます。
#必要なもの
| Dujiao-Next | v1.5.0以降で、上流接続機能(Integrationメニュー)があること |
| CardVアカウント | API利用が有効になっている承認済みのマーチャントアカウント |
| APIキー | Merchant Portalで発行した署名付きAPIキー(key ID + signing secret) |
| 残高 | USD建てのCardV前払い残高。ショップが行うすべての注文はここから支払われます |
購入者に対する販売者はあなたです。価格の設定、購入者からの問い合わせ対応、返金の対応はあなたが行います。
#ステップ1:APIキーを取得する
Merchant Portal の API と Webhook > API キー にある、すでにお持ちのAPIキーを使います。Dujiao-Next用に別のキーを用意する必要はありません。
- key ID は
ck_live_で始まります。 - signing secret は
cs_live_で始まります。表示されるのはキーを作成したときの1回だけです。手元にない場合は、そのキーで シークレットを再発行 を使ってください。key IDは変わらず、古いシークレットはすぐに使えなくなります。
key IDのない古いキーは使えません。代わりにPortalで新しいキーを作成してください。

#ステップ2:接続を追加する
Dujiao-Nextの管理画面で Integration > Connection Management > New Connection を開き、フォームに入力します。
| 項目 | 入力する内容 | 理由 |
|---|---|---|
| Name | 例:CardV (USD) | 表示されるのはあなたにだけです。通貨を含めておくと後で混乱しません |
| Base URL | https://b2b.cardv.net/dujiao | /dujiao まで含め、その後には何も付けず、末尾のスラッシュも付けません |
| API Key | key ID(ck_live_…) | |
| API Secret | signing secret(cs_live_…) | 後で接続を編集するときは、空欄のままにすると保存済みのシークレットが維持されます |
| Protocol | dujiao-next | |
| Callback URL | 空欄のまま | CardVはコールバックを送信しません。ショップが各注文の結果を確認します(配送の仕組みを参照) |
| Max Retries / Retry Intervals | デフォルトのまま(3 / 30,60,120) | 再試行は一時的なエラーにのみ適用されます |
| Exchange Rate | 自分で入力する固定の数値です。USD からショップの通貨への当日の実際のレートを調べ、少し余裕を持たせて高めに設定します。ショップがUSDで販売する場合は 1 を使います | CardVの価格は常にUSD建てです。Dujiao-Nextはリアルタイムのレートを取得せず、CardVがこの値を設定することもできません。デフォルトは 1 のため、ほかの通貨で販売するショップでは10 USDのカードが自国通貨で10として掲載されてしまいます |
| Price Markup (%) | 利益率。例:15 | デフォルトは 0 で、利益が出ません |
| Price Rounding | Round up (0.1) または Round up (integer) | 切り上げなので、販売価格が原価を下回ることはありません |
| Auto-update price on sync | Yes | CardVの価格が変わると、次回の同期で販売価格が再計算されます |
為替レートとマークアップは次のように組み合わされます:CardVの価格 × 為替レート ×(1 + マークアップ)を計算し、端数を処理します。例えば、レートを7.2(あくまで例です。調べた現在のレートを入力してください)、マークアップを15%とすると、5.78 USDのカードは47.9で販売されます。

為替レートが変動したら、接続のレートを更新し、Reapply Markup をクリックして、インポート済みの商品の価格を更新します。マークアップを変更したときも同じ操作を行います。
#ステップ3:接続をテストする
接続の Ping をクリックします。Ping succeeded と表示されればキーは正しく動作しており、接続のステータスが Active に変わります。エラーが表示された場合はトラブルシューティングを参照してください。

#ステップ4:商品をインポートする
- Integration > Product Mappings > Import from Upstream を開き、CardVの接続を選びます。
- カテゴリから閲覧するか、Flat List に切り替えて個別の商品を選びます。
- ローカルのカテゴリを選ぶか、Auto-create local categories にチェックを入れます。商品を保存するにはカテゴリが必要です。
- インポートします。各商品のタイトル、説明、利用方法、額面(
10 USDなど)はそのまま引き継がれます。

インポートした商品は販売停止の状態です。1つずつ確認してから、商品エディタで Active をオンにしてください。

#ステップ5:1注文につき1点に設定する
インポートしたすべての商品について、商品エディタを開き、Max purchase quantity を 1 に設定します。
CardVは1注文につき1点を配送します。購入者が1つの注文で2つのコードの代金を支払うと、CardVは購入を拒否し、その注文は手作業で対応する必要があります。Dujiao-NextはこのCardVの制限を自動で受け取れないため、自分で設定してください。
エディタを開いているついでに、次の設定もおすすめします。
- ストアフロントの在庫表示:Hide quantity を選びます。CardVは注文が入った時点でブランドから購入するため、ショップに表示される在庫数は「購入可能」という意味しか持ちません。
- 画像:画像のない商品には自分で画像を追加します。

#配送の仕組み
- 購入者がショップで支払います。
- ショップが購入をCardVに送信し、CardVがあなたのCardV残高から代金を差し引きます。
- ショップがCardVで注文の状態を確認します。当社のテストでは、コードは1分以内に届きました。
- コードは購入者の注文ページに
Code、PIN(カードにある場合)、Expires(カードに有効期限がある場合)として表示されます。常にコードであり、リンクになることはありません。
ダイレクトチャージ。 一部の商品は、購入者のゲームやアプリのアカウントに直接チャージされます。購入者はチェックアウト時に、プレイヤーIDや電話番号など商品に必要な情報を入力します。チャージが完了すると、購入者の注文ページに Top-up completed. と表示されます。
CardVが配送できない場合。 CardVは注文の代金をあなたのCardV残高に返金し、ショップはその購入をキャンセル済みにします。その後、ショップで購入者への返金やサポートを行ってください。


#利用できないもの
インポート一覧には、この接続を通じてショップで販売できる商品だけが表示されます。
- 固定額のみ。 購入者が金額を入力するカードは表示されません。
- 表示されないもの: 携帯電話の通話料チャージ、決済・ウォレット商品、暗号資産、プリペイド決済カード。
- コードのみ。 リンクでしか配送できない商品は表示されません。
表示される価格は、USD建てのあなた自身のCardV価格です。
#IPホワイトリスト
Merchant PortalでIPホワイトリストを設定している場合は、Dujiao-Nextのショップを動かしているサーバーのパブリックIPアドレスを追加してください。追加しないと、CardVはそのサーバーからのすべてのリクエストを拒否します。CardV APIとDujiao-Nextには、同じキー、ホワイトリスト、リクエスト制限が適用されます。
#トラブルシューティング
これらのメッセージは、Dujiao-Nextの管理画面で、Ping の後、インポート中、または Procurement Orders の購入に表示されます。
| メッセージ | 原因 | 対処方法 |
|---|---|---|
status 401 (invalid_signature): signature verification failed | API Secretが間違っているか、Portalで再発行した | 現在のsigning secretを接続にコピーします |
status 403 (invalid_api_key): api key is invalid or disabled | API Keyがkey ID(ck_live_…)ではないか、キーが無効になっている | 有効なキーのkey IDを使います |
status 403 (user_disabled): merchant API access is not enabled | アカウントのAPI利用がまだ承認されていない | Portalで事業審査を完了します |
status 403 (forbidden): source IP is not allowed for this merchant | IPホワイトリストにショップのサーバーが含まれていない | PortalでサーバーのパブリックIPアドレスを追加します |
status 401 (timestamp_expired): timestamp expired | サーバーの時刻が60秒以上ずれている | サーバーで時刻の自動同期(NTP)をオンにします |
status 404 の後にWebページが表示される | Base URLが間違っている(多くは /dujiao が抜けている) | https://b2b.cardv.net/dujiao を使います |
CardV wallet balance is insufficient | CardV残高が購入額に足りない。購入者の注文は支払い済みのまま残る | CardV残高をチャージしてから、Procurement Orders でその購入の Retry をクリックします |
quantity must be 1: CardV accepts one item per order | 購入者がある商品を2点以上注文した | Max purchase quantity を 1 に設定し(ステップ5)、その注文は手作業で対応します |
sku is invalid or not available | その商品はCardVで提供されなくなった | マッピングで同期を実行します。CardVが提供しなくなった商品は販売停止になります |
status 429 (rate_limited) | 1分間のリクエストが多すぎる | ショップが自動で再試行します。繰り返し発生する場合は同期の頻度を下げてください |
#よくある質問
Dujiao-Next用に新しいAPIキーは必要ですか? いいえ。すでにお持ちの署名付きAPIキーを使ってください。同じキーを自社のCardV API連携にも使っている場合、両方で同じリクエスト制限を共有します。
なぜCallback URLを空欄にするのですか? CardVはショップにコールバックを送信しません。Dujiao-Nextのショップが、結果が確定するまで各注文を自分で確認します。
CardVの価格が変わるとどうなりますか? Auto-update price on sync をオンにしている場合、次回の同期で販売価格があなたのレートとマークアップで再計算されます。オフの場合、ショップは古い価格のまま販売を続けます。
CardVでこれらの注文はどこで確認できますか? Merchant Portalの 注文 ページです。お客様の注文 ID 列は dujiao: で始まり、その後にDujiao-Nextのサブ注文番号が続きます(例:dujiao:DJ…-01)。CardVのWebhookを設定している場合は、これらの注文でもWebhookが送信されます。

商品のタイトル、説明、画像は変更できますか? はい。同期で更新されるのは価格と販売可否です。タイトルや画像が上書きされることはありません。
任意の金額を販売できますか? Dujiao-Nextではまだできません。利用できるのは固定額のみです。
#サポート
Merchant ID、Dujiao-Nextの注文番号、エラーメッセージを添えて [email protected] までメールでお問い合わせください。CardVのご利用には当社の利用規約が適用されます。
連携についてご不明な点は、Merchant ID と注文 ID またはリクエスト ID を添えて [email protected] までお問い合わせください。