> ## Documentation Index
> Fetch the complete documentation index at: https://waffo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 本番移行チェックリスト

> サンドボックスから本番環境へ切り替える前の完全なチェックリスト。

サンドボックスから本番環境へ切り替える前に、以下のチェックリストの全項目を完了していることを確認してください。

## 統合受入テスト

* Waffoの[統合受入基準](/docs/ja/developer-docs/tools-and-references/references/acceptance-criteria)を通過した(機能テスト、例外処理、パラメータ品質チェック)
* 受入結果をWaffo技術連携グループに提出し、確認を受けた

## 認証情報と設定

* Waffo SDKまたはAI連携ツールを使用する場合、環境設定を `Environment.SANDBOX` から `Environment.PRODUCTION` に切り替えた
* APIを直接呼び出す場合、本番APIドメインと本番API Keyに切り替えた
* 本番用API Keyを設定した(**加盟店Portal → Integration** で確認、Dev/Adminロールが必要)
* 本番用RSAキーペアを生成した(サンドボックスの事前生成キーは再利用しないこと)
* **加盟店Portal → Integration** で加盟店公開鍵を設定した(X.509 Base64の内容をコピー、Dev/Adminロールが必要)
* Portalから本番用のWaffo公開鍵を取得した
* 必要に応じて、グローバル返金コールバック用に `refundNotifyUrl` をPortalで設定した
* 必要に応じて、[紛争/チャージバック](/docs/ja/essentials/dispute-chargeback)通知用に `chargebackNotifyUrl` をPortalで設定した

Waffoの署名ツールと互換性のある本番用RSAキーペアは、以下のコマンドで生成できます。秘密鍵はPKCS8 Base64、公開鍵はX.509/SPKI Base64形式です:

```bash theme={null}
openssl genpkey -algorithm RSA \
  -pkeyopt rsa_keygen_bits:2048 \
  -out merchant_private_key.pem

openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt \
  -in merchant_private_key.pem \
  | grep -v '^-----' \
  | tr -d '\n' > merchant_private_key.base64

openssl rsa -in merchant_private_key.pem -pubout \
  | grep -v '^-----' \
  | tr -d '\n' > merchant_public_key.base64
```

このコマンドはPEMのヘッダーとフッターを自動で取り除き、1行のBase64として出力します。`merchant_public_key.base64` の内容をMerchant Portalの加盟店公開鍵フィールドに直接コピーします。`merchant_private_key.base64` はサーバー側の鍵管理システムに保存し、コードリポジトリにコミットしたりWaffoへ送信したりしないでください。

## セキュリティ

* RSA秘密鍵はコードにハードコードせず、環境変数または鍵管理サービスを使用している
* すべてのAPI通信でTLS 1.2+を使用している
* ログに鍵や機密決済情報の全体を記録していない

## 推奨インフラ設定

* 本番サーバーは海外またはネットワーク遅延が安定している地域にデプロイすることを推奨します。中国本土にデプロイする場合は、事前にWaffo APIへの遅延評価を完了してください。
* APIコールのタイムアウトは15秒、最低でも8秒以上に設定することを推奨します。
* DNS TTLは60秒に設定し、Waffo IPを長期間固定しないことを推奨します。
* 決済作成、決済照会、Webhook処理にはログとアラートを設定し、本番移行直後の調査に備えることを推奨します。

## アプリ関連(該当する場合)

* アプリのWebViewが外部Appと外部ブラウザページを開ける
* アプリのWebViewがダウンロード、コピー、長押し保存に対応している(QR、OTC、銀行振込系の決済手段で必要になる場合があります)
* ネイティブAppとWebViewの間でURLを受け渡す際、queryパラメータが保持される
* PayPay、Google Pay、Apple Pay、JKOPAYなどの制限を[決済手段別の連携注意事項](/docs/ja/developer-docs/tools-and-references/references/payment-method-integration-notes)で確認済み
