# Mirakl アプリをインストールする Stripe 用の Mirakl アプリを設定します。 Mirakl のアプリをインストールして実行するには、以下の条件を満たす必要があります。 - PHP 7.3 以上 - PostgreSQL - Web サーバー(Nginx 推奨) - 有効な SSL 証明書または *TLS* (TLS refers to the process of securely transmitting data between the client—the app or browser that your customer is using—and your server. This was originally performed using the SSL (Secure Sockets Layer) protocol) 証明書 - Supervisord または同等のプロセスマネージャー - Crontab または同等のタスクスケジューラー ## Docker を使用 アプリケーションをコンテナに埋め込むことで、アプリケーションを構築および開始できます。詳細については、[Docker サンプル](https://github.com/stripe/stripe-mirakl-connector/tree/master/examples/docker)を参照してください。 ## Composer の使用 1. [Composer](https://getcomposer.org/download/) をインストールします。 1. GitHub から [Mirakl アプリ](https://github.com/stripe/stripe-mirakl-connector.git)をクローンするかダウンロードしてください。 1. コンテンツを `/var/www` のような Web サーバーディレクトリに移動します。 1. 従属性をダウンロードします。 ```bash composer install --prefer-dist --no-dev ``` 1. [.env file](https://docs.stripe.com/use-stripe-apps/mirakl/configuration.md)を適切に設定します。 1. データベースをセットアップするためにマイグレーションを実行します。この段階でエラーが発生した場合は、.env ファイルの `DATABASE_URL`変数を確認してください。 ```bash bin/console doctrine:migration:migrate --no-interaction ``` 1. スーパーバイザーを更新して、ワーカーを自動的に起動・再起動するようにします。[設定例](https://github.com/stripe/stripe-mirakl-connector/blob/master/examples/docker/app/config/supervisord.conf)は Docker サンプルにあります。開発環境ではこのステップをスキップして、必要なときに手動でワーカーを起動することもできます。 ```bash php bin/console messenger:consume process_transfers --time-limit=3600 --env=prod ``` 1. 定期的にコマンドを実行するようにジョブスケジューラーを更新してください。[設定例](https://github.com/stripe/stripe-mirakl-connector/blob/master/examples/docker/app/config/crontab)は Docker サンプルにあります。開発環境ではこのステップを省略し、必要なときに手動でジョブを開始することもできます。 ```bash php bin/console connector:dispatch:process-transfer -q 2>&1 ``` 1. Web サーバーがドキュメントルートとして `public` ディレクトリを使用するように設定されていることを確認してください。 ## インストールをテストする 端末を開き、次のコマンドを実行して、アプリケーションが正しく実行されていることを確認します。 ```bash curl -X GET "https://app-url/api/mappings" \ -H "accept: application/json" \ -H "X-AUTH-TOKEN: $OPERATOR_PASSWORD" # 設定中に生成されます。 ``` 空のペイロードとともに `200` レスポンスコードを取得する必要があります。 ## インバウンドトラフィックの制限 サーバーでは、次のエンドポイントを除いて、プラグインですべてのインバウンドトラフィックを制限します。 - `/api/public/onboarding/refresh`: Stripe は、ユーザー登録リンクの有効期限が切れた場合、新しいユーザー登録リンクを取得するために売り手をこの URL にリダイレクトします。 - `/api/public/webhook/operator`: Stripe は決済が更新されるとこのエンドポイントに通知し、アプリ内の Mirakl 注文とマッピングします。 - `/api/public/webhook/sellers`: Stripe は、アプリ内で売り手のステータスを同期するために Stripe アカウントが更新されると、このエンドポイントに通知します。 これらのエンドポイントは、それぞれ内部の保護メカニズムを持っているため、公開しても安全です。その他のエンドポイントは、強力な `OPERATOR_PASSWORD`で保護されていない限り、公開しても安全ではありません。