paypal webhookをテストして使用できる3つの環境が欲しいです。私の現在のアプローチは、paypal開発者ポータルのすべての環境に新しいWebhookを作成し、リクエストが到着したらその環境用かどうかを確認することです。paypalは複数のwebhook URLをどのように処理し、環境が正しくない場合はどのステータスコードを返す必要がありますか?
以下のようなクラスを作成して、アプリケーションの最初の部分を維持します。一度初期化させます。
class App {
private static $env_status = null;
private static $paypal_settings = [];
const ENV_PRODUCTION = "production";
const ENV_STAGING = "staging";
const ENV_DEV = "development";
public static function init() {
// Set environment status.
// You can also parse domain name and depending on your domain, you can set the environment status.
self::$env_status = getenv("ENV_STATUS"); // getenv() Gets from Environment variable. You'll need set clear_env = no in php config for this to work.
switch(self::$env_status) {
case App::ENV_PRODUCTION:
self::$paypal_settings = [
"mode" => "live"
"clientID" => "PRODUCTION_CLIENT_ID" ,
"secret" => "PRODUCTION_SECRET" ,
"currency" => "USD",
"webhook" => "https://example.com/live_webhook_endpoint"
];
break;
case App::ENV_STAGING:
self::$paypal_settings = [
"mode"=> "sandbox"
"clientID"=> "STAGING_CLIENT_ID" ,
"secret"=> "STAGING_SECRET" ,
"currency"=> "USD",
"webhook" => "https://example.com/staging_webhook_endpoint"
];
break;
default:
// ENV_DEV settings
self::$paypal_settings = [
"mode"=> "sandbox"
"clientID"=> "DEVELOPMENT_CLIENT_ID" ,
"secret"=> "DEVELOPMENT_SECRET" ,
"currency"=> "USD",
"webhook" => "https://example.com/development_webhook_endpoint"
];
break;
}
}
public static function env_status() {
return self::$env_status;
}
public static function paypal_settings() {
return self::$paypal_settings;
}
// You can also create seprate function if you just want webhook URL.
// You can define in different variable also if that's the case.
public static function paypal_webhook_url() {
return self::$paypal_settings['webhook'];
}
} App::init();
次に、paypal設定を取得したいときはいつでも、アプリケーションのどこからでも呼び出すことができます。
$paypay_settings = App::paypal_settings();
または、paypal webhook URLだけが必要な場合
$paypal_webhook_url = App::paypal_webhook_url();
これにより、コードの他の部分で条件を維持する必要がなくなります。すべての条件が1か所に配置されるため、後で更新するのが簡単になります。
ステージング/開発環境でヒットするには、PayPalサンドボックスURLをヒットする必要があります。
HTTP400。これは無効なリクエストになるため。
参照:https : //developer.mozilla.org/en-US/docs/Web/HTTP/Status/400
HyperText Transfer Protocol(HTTP)400 Bad Request応答ステータスコードは、クライアントエラーであると認識される何か(たとえば、不正な形式の要求構文、無効な要求メッセージフレーミング、または不正な要求)のために、サーバーが要求を処理できないか、または処理しないことを示します。ルーティング)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加