[ 'enabled' => env('BAGISTOAPI_EXPRESS_CHECKOUT_ENABLED', true), 'cancel_without_address' => env('BAGISTOAPI_EXPRESS_CANCEL_WITHOUT_ADDRESS', 'cancel'), 'placeholder_address' => [ 'first_name' => 'Express', 'last_name' => 'Checkout', 'email' => 'express-checkout@placeholder.local', 'address' => 'Pending gateway response', 'city' => 'Pending', 'state' => 'Pending', 'country' => 'US', 'postcode' => '00000', 'phone' => '0000000000', ], ], /* |-------------------------------------------------------------------------- | Frontend URLs |-------------------------------------------------------------------------- | | frontend.reset_password_url | Generic base URL of the reset-password page on the headless frontend, | e.g. https://shop.example.com/reset-password. Used when no device | specific URL below is configured. | | frontend.reset_password_url_pc / frontend.reset_password_url_mobile | Device specific base URLs. PC requests use reset_password_url_pc, | mobile requests use reset_password_url_mobile (detected from the | X-Device-Type header or the User-Agent). | | The token and email are appended as query parameters | (?token=...&email=...). When every option is empty, emails fall back to | the built-in Shop storefront page. */ 'frontend' => [ 'reset_password_url' => env('FRONTEND_RESET_PASSWORD_URL', ''), 'reset_password_url_pc' => env('FRONTEND_RESET_PASSWORD_URL_PC', ''), 'reset_password_url_mobile' => env('FRONTEND_RESET_PASSWORD_URL_MOBILE', ''), ], /* |-------------------------------------------------------------------------- | Payment Reconciliation Job |-------------------------------------------------------------------------- | | reconcile.enabled | Toggle the reconciliation job that polls the gateway while the order | is still PENDING. | | The job re-schedules itself. All values below are in SECONDS and are | measured from the anchor time (order creation, or the most recent | `redirected` payment attempt when the buyer used paymentReplay): | | reconcile.early_marks | Fixed early probes, e.g. [30, 60, 300] = 30s, 1min, 5min. | | reconcile.interval | Polling interval once the early probes are done (default 3 min). | | reconcile.late_after / reconcile.late_interval | After `late_after` seconds the interval widens to `late_interval` | (default: after 30 min, poll every 5 min). | | reconcile.max_seconds | Hard stop. A PayPal order expires after roughly 3 hours, so polling | past that point cannot tell us anything new. | | reconcile.queue | Name of the queue the reconciliation job is dispatched onto. This must | be consumed by a worker, and the Redis instance backing it must not | evict keys (see the package README). */ 'reconcile' => [ 'enabled' => env('BAGISTOAPI_PAYMENT_RECONCILE_ENABLED', true), 'early_marks' => [30, 60, 300], 'interval' => (int) env('BAGISTOAPI_PAYMENT_RECONCILE_INTERVAL', 180), 'late_after' => (int) env('BAGISTOAPI_PAYMENT_RECONCILE_LATE_AFTER', 1800), 'late_interval' => (int) env('BAGISTOAPI_PAYMENT_RECONCILE_LATE_INTERVAL', 300), 'max_seconds' => (int) env('BAGISTOAPI_PAYMENT_RECONCILE_MAX_SECONDS', 10800), 'queue' => env('BAGISTOAPI_PAYMENT_RECONCILE_QUEUE', 'payment-reconcile'), ], ];