• プラグイン一覧
    - WCEX Item Combo Set
    - WCEX Amazon Pay
    - WCEX Wishlist お気に入りリスト
  • リリース情報
  • お役立ちコラム
  • お問い合わせ
  • サポート
    • よくある質問
      • WCEX Amazon Pay
      • WCEX Wishlist お気に入りリスト
      • wcex-item-combo-set
    • リファレンス
      • WCEX Amazon Pay
      • WCEX Wishlist お気に入りリスト
      • wcex-item-combo-set
新規会員登録
ログイン
新規会員登録
ログイン
カート
  • プラグイン一覧
    • - WCEX Item Combo Set
    • - WCEX Amazon Pay
    • - WCEX Wishlist お気に入りリスト
  • リリース情報
  • お役立ちコラム
  • サポート
    • - よくある質問
      • - WCEX Amazon Pay
      • - WCEX Wishlist お気に入りリスト
      • - wcex-item-combo-set
    • - リファレンス
      • - WCEX Amazon Pay
      • - WCEX Wishlist お気に入りリスト
      • - wcex-item-combo-set
  • お問い合わせ
Aivec APPs > WCEX Amazon Pay > クラス > Create
レファレンス
バージョン
2.6.4
絞り込み:

目次

  • ソース
  • 関数

フック

  • アクション
  • フィルター

ファンクション

    クラス

    Create

    Amazon Pay V2 SDK Checkout Session create.

    ソース #ソース

    ファイル: src/API/CheckoutSession/Create.php

    class Create
    {
    
        /**
         * Key of checkout session ID returned by `createCheckoutSession`
         */
        const CHECKOUT_SESSION_ID_KEY = 'checkoutSessionId';
    
        /**
         * AmazonPay module object
         *
         * @var AmazonPay
         */
        private $module;
    
        /**
         * Redirect URL for checkout review page
         *
         * @var string
         */
        private $checkoutReviewUrl;
    
        /**
         * Sets `$module` member var with dependency injection.
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @param AmazonPay $module
         * @param string    $checkoutReviewUrl
         * @return void
         */
        public function __construct(AmazonPay $module, $checkoutReviewUrl) {
            $this->module = $module;
            $this->checkoutReviewUrl = $checkoutReviewUrl;
        }
    
        /**
         * Creates a new checkout session
         *
         * @see https://amazonpaycheckoutintegrationguide.s3.amazonaws.com/amazon-pay-api-v2/checkout-session.html#create-checkout-session
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return array
         * @throws InvalidArgumentException Thrown by `getAmazonClient`.
         */
        public function post() {
            $opts = $this->module->getActingOpts();
            $payload = [
                'webCheckoutDetails' => [
                    'checkoutReviewReturnUrl' => $this->checkoutReviewUrl,
                ],
                'platformId' => Constants::PLATFORM_ID,
                'storeId' => $opts['client_id'],
            ];
            $headers = ['x-amz-pay-Idempotency-Key' => uniqid()];
    
            try {
                $client = $this->module->getAmazonClient();
                // call `generateButtonSignature` so that an error is thrown if the merchant's
                // public/private key pair is not correct
                $client->generateButtonSignature($payload);
                $result = $client->createCheckoutSession($payload, $headers);
                if ($this->module->errors->hasError($result)) {
                    return $this->module->errors->getAmzErrorResponse($result);
                }
            } catch (\Exception $e) {
                return $this->module->errors->getErrorResponse(
                    GenericErrorStore::AMAZON_PAY_SDK_CLIENT_EXCEPTION,
                    [$e->getMessage()]
                );
            }
    
            return json_decode($result['response'], true)['checkoutSessionId'];
        }
    }
    

    ソースを伸ばす ソースを縮める


    関数 #関数

    Top ↑

    • __construct — Sets `$module` member var with dependency injection.
    • post — Creates a new checkout session

    • 新規会員登録
    • ログイン
      • プラグイン一覧
      • 会社概要
      • リリース情報
      • よくある質問
      • お役立ちコラム
      • お問い合わせ
      • 個人情報保護方針
      • 特定商取引法に基づく表記
      • 情報セキュリティ基本方針
      • 利用規約

    アイベック合同会社は「Welcart」「Amazon Pay」の公式パートナーです。

    ※Amazon、Amazon.co.jp、Amazon Payおよびそれらのロゴは、Amazon.com,inc.またはその関連会社の商標です。
    ※LINE Pay、およびLINE Pay 提携サービスのロゴは、法律上保護を受ける商標です。

    © 2025 Aivec llc All Rights Reserved.