• プラグイン一覧
    - 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 > クラス > RestRoutes
レファレンス
バージョン
2.6.4
絞り込み:

目次

  • ソース
  • 関数

フック

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

ファンクション

    クラス

    RestRoutes

    Declares all REST routes for WCEX Amazon Pay

    ソース #ソース

    ファイル: src/Routing/RestRoutes.php

    class RestRoutes extends Router
    {
        /**
         * Amazon Pay module object
         *
         * @var AmazonPay
         */
        private $module;
    
        /**
         * Instantiates router
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @param AmazonPay $module
         */
        public function __construct(AmazonPay $module) {
            $this->module = $module;
            parent::__construct('/wcexaap', Constants::NONCE_KEY, Constants::NONCE_NAME);
        }
    
        /**
         * Contains declarations for all routes
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @param WordPressRouteCollector $r
         * @return void
         */
        public function declareRoutes(WordPressRouteCollector $r) {
            // REST handlers
            $coupon = new API\Coupon();
            $fees = new API\Fees();
            $points = new API\Points();
            $deliverym = new API\DeliveryMethod();
            $register = new API\RegisterWithAmazon();
            $syncaccount = new API\SyncAmazonAccount();
            $settlementInfo = new Admin\API\SettlementInfo($this->module);
            $refund = new Admin\API\Refund($this->module);
            $capture = new Admin\API\Capture($this->module);
            $cancel = new Admin\API\Cancel($this->module);
            $ipn = new Admin\API\IPN($this->module);
            $linkmember = new API\LinkMembersToAmazon();
    
            // route guards
            $routeGuards = new RestRouteGuards($this->module);
    
            // middleware
            $middleware = new Middleware();
            $adminMiddleware = new Admin\API\Middleware($this->module);
    
            // REST admin editor wc_management routes
            $r->add(
                'POST',
                '/admin/getSettlementInfo/{orderId}',
                [$settlementInfo, 'get'],
                [$adminMiddleware->isOrderAssociated()],
                [],
                ['administrator', 'editor', 'wc_management']
            );
            $r->add(
                'POST',
                '/admin/refund/{orderId}/{refundAmount}',
                [$refund, 'post'],
                [$adminMiddleware->isOrderAssociated()],
                [],
                ['administrator', 'editor', 'wc_management']
            );
            $r->add(
                'POST',
                '/admin/capture/{orderId}/{captureAmount}',
                [$capture, 'post'],
                [$adminMiddleware->isOrderAssociated()],
                [],
                ['administrator', 'editor', 'wc_management']
            );
            $r->add(
                'POST',
                '/admin/cancel/{orderId}',
                [$cancel, 'delete'],
                [$adminMiddleware->isOrderAssociated()],
                [],
                ['administrator', 'editor', 'wc_management']
            );
            $r->addAdministratorRoute('POST', '/admin/registerIPNEndpoint', [$ipn, 'register']);
    
            // REST public routes
            $r->post('/member/updateAmazonLoginOption/{sync:[0-1]}', [$syncaccount, 'updateSyncMeta']);
            $r->post('/useCoupon', [$coupon, 'useCoupon'], [$middleware->updateWelcartEntries()]);
            $r->post('/resetCoupon', [$coupon, 'resetCoupon'], [$middleware->updateWelcartEntries()]);
            $r->post('/usePoints', [$points, 'usePoints'], [$middleware->updateWelcartEntries()]);
            $r->post('/updateFees', [$fees, 'updateFees'], [$middleware->updateWelcartEntries()]);
            $r->post('/updateDeliveryMethod', [$deliverym, 'update'], [$routeGuards->deliveryMethodCheck()]);
    
            $authAndCapture = API\CheckoutSession\Update::$authorizeWithCapture;
            $authOnly = API\CheckoutSession\Update::$authorize;
            $paymentIntent = $this->module->captureOnPurchase() ? $authAndCapture : $authOnly;
    
            // normal Welcart checkout
            $r->addGroup('/checkout/welcart', function (WordPressRouteCollector $r) use ($middleware, $routeGuards, $paymentIntent) {
                $payAndShipOnce = new API\CheckoutSession\Create(
                    $this->module,
                    $this->module->redirectRoutes->createPublicQueryUrl(
                        '/checkout/welcart/payandship/once/review',
                        USCES_CART_URL,
                        ['confirm' => 1]
                    )
                );
                $payOnlyOnce = new API\CheckoutSession\Create(
                    $this->module,
                    $this->module->redirectRoutes->createPublicQueryUrl(
                        '/checkout/welcart/payonly/once/review',
                        USCES_CART_URL,
                        ['confirm' => 1]
                    )
                );
                $cartUpdate = new API\CheckoutSession\Update(
                    $this->module,
                    add_query_arg(['wcexaapCompletePurchase' => 1], USCES_CART_URL),
                    false,
                    $paymentIntent
                );
                $r->post('/payandship/once/createSession', [$payAndShipOnce, 'post']);
                $r->post('/payonly/once/createSession', [$payOnlyOnce, 'post']);
                $r->post(
                    '/payandship/once/updateSession/{id}',
                    function (array $args) use ($cartUpdate) {
                        $cartUpdate->setSettlementType('payandship');
                        return $cartUpdate->patch($args);
                    },
                    [
                        $middleware->updateWelcartEntries(),
                        $routeGuards->cartNotEmptyCheck(),
                        $routeGuards->itemsInStockCheck(),
                        $routeGuards->addressCheck(),
                    ],
                    [$middleware->saveOrderActingData()]
                );
                $r->post(
                    '/payonly/once/updateSession/{id}',
                    function (array $args) use ($cartUpdate) {
                        $cartUpdate->setSettlementType('payonly');
                        return $cartUpdate->patch($args);
                    },
                    [
                        $middleware->updateWelcartEntries(),
                        $routeGuards->cartNotEmptyCheck(),
                        $routeGuards->itemsInStockCheck(),
                    ],
                    [$middleware->saveOrderActingData()]
                );
            });
    
            // QuickPay checkout
            $r->addGroup('/checkout/quickpay', function (WordPressRouteCollector $r) use (
                $middleware,
                $routeGuards,
                $paymentIntent,
                $register,
                $linkmember
            ) {
                $payAndShipOnce = new API\CheckoutSession\Create(
                    $this->module,
                    $this->module->redirectRoutes->createPublicQueryUrl(
                        '/checkout/quickpay/payandship/once/review',
                        USCES_CART_URL
                    )
                );
                $payOnlyOnce = new API\CheckoutSession\Create(
                    $this->module,
                    $this->module->redirectRoutes->createPublicQueryUrl(
                        '/checkout/quickpay/payonly/once/review',
                        USCES_CART_URL
                    )
                );
                $cartUpdate = new API\CheckoutSession\Update(
                    $this->module,
                    add_query_arg(['wcexaapCompletePurchase' => 1], USCES_CART_URL),
                    false,
                    $paymentIntent
                );
                $r->post('/payandship/once/createSession', [$payAndShipOnce, 'post']);
                $r->post('/payonly/once/createSession', [$payOnlyOnce, 'post']);
                $r->post(
                    '/payandship/once/updateSession/{id}',
                    function (array $args) use ($cartUpdate) {
                        $cartUpdate->setSettlementType('payandship');
                        return $cartUpdate->patch($args);
                    },
                    [
                        $middleware->updateWelcartEntries(),
                        $routeGuards->cartNotEmptyCheck(),
                        $routeGuards->itemsInStockCheck(),
                        $routeGuards->deliveryMethodCheck(),
                        $routeGuards->addressCheck(),
                        $routeGuards->giftShippingCustomerAddressCheck(),
                        $routeGuards->customFieldsCheck(),
                        $register->registerNewMemberIfRequired(),
                        $register->setOrderGetPointIfNewMember(),
                        $linkmember->saveLinkWithYourAmazonAccount(),
                    ],
                    [$middleware->saveOrderActingData()]
                );
                $r->post(
                    '/payonly/once/updateSession/{id}',
                    function (array $args) use ($cartUpdate) {
                        $cartUpdate->setSettlementType('payonly');
                        return $cartUpdate->patch($args);
                    },
                    [
                        $middleware->updateWelcartEntries(),
                        $routeGuards->cartNotEmptyCheck(),
                        $routeGuards->itemsInStockCheck(),
                        $routeGuards->customOrderFieldsCheck(),
                        $linkmember->saveLinkWithYourAmazonAccount(),
                    ],
                    [$middleware->saveOrderActingData()]
                );
            });
        }
    }
    

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


    関数 #関数

    Top ↑

    • __construct — Instantiates router
    • declareRoutes — Contains declarations for all routes

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

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

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

    © 2025 Aivec llc All Rights Reserved.