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

目次

  • ソース
  • 関数

フック

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

ファンクション

    クラス

    OrderMeta

    AmazonPay order meta data model

    ソース #ソース

    ファイル: src/Models/OrderMeta.php

    class OrderMeta
    {
    
        const CHARGE_PERMISSION_ID = 'amazonChargePermissionId';
        const CHARGE_ID = 'amazonChargeId';
        const REFUND_ID = 'amazonRefundId';
        const CHARGE_STATE = 'amazonChargeState';
        const REFUND_STATE = 'amazonRefundState';
        const LINK_KEY = 'amazonLinkKey';
        const PAYMENT_CURRENCY = 'amazonPaymentCurrency';
        const MOST_RECENT_TRANS_AMOUNT = 'amazonMostRecentTransAmount';
        const IPN_NOTIFICATION_IDS = 'amazonIpnNotificationIds';
    
        /**
         * Welcart order ID
         *
         * @var int
         */
        private $orderid;
    
        /**
         * Payment currency
         *
         * @var string
         */
        private $paymentCurrency;
    
        /**
         * Amount of the most recent transaction that involved a payment of some kind
         *
         * @var int|string
         */
        private $mostRecentTransactionAmount;
    
        /**
         * `chargePermissionId` returned by `Get Checkout Session` API
         *
         * @var string
         */
        private $chargePermissionId;
    
        /**
         * `chargeId` returned by `Get Checkout Session` API
         *
         * @var string|null
         */
        private $chargeId;
    
        /**
         * `refundId` returned by `Create Refund` API
         *
         * @var string|null
         */
        private $refundId = null;
    
        /**
         * Link key for the 直前決済ログ entry
         *
         * @var string|null
         */
        private $linkKey = null;
    
        /**
         * Charge state object for state tracking
         *
         * @var Charge\State|null
         */
        private $chargeState;
    
        /**
         * Refund state object for state tracking
         *
         * @var Refund\State|null
         */
        private $refundState = null;
    
        /**
         * List of processed IPN ids
         *
         * @var string[]
         */
        private $ipnNotificationIds = [];
    
        /**
         * Constructs an AmazonPay order object from an existing transaction
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \usc_e_shop $usces
         * @param int $orderid
         * @return void
         * @throws InvalidArgumentException Thrown if no such Amazon Pay order exists for the given order ID.
         */
        public function __construct($orderid) {
            global $usces;
    
            $this->orderid = (int)$orderid;
            $this->chargeId = $usces->get_order_meta_value(self::CHARGE_ID, $this->orderid);
            $this->chargePermissionId = $usces->get_order_meta_value(self::CHARGE_PERMISSION_ID, $this->orderid);
            $this->refundId = $usces->get_order_meta_value(self::REFUND_ID, $this->orderid);
            $this->linkKey = $usces->get_order_meta_value(self::LINK_KEY, $this->orderid);
            $this->paymentCurrency = $usces->get_order_meta_value(self::PAYMENT_CURRENCY, $this->orderid);
            $ipnNotificationIds = $usces->get_order_meta_value(self::IPN_NOTIFICATION_IDS, $this->orderid);
            $this->mostRecentTransactionAmount = $usces->get_order_meta_value(
                self::MOST_RECENT_TRANS_AMOUNT,
                $this->orderid
            );
            if (empty($this->chargePermissionId)) {
                throw new InvalidArgumentException('No such Amazon Pay order exists for the given order ID');
            }
            if (empty($ipnNotificationIds)) {
                $this->ipnNotificationIds = [];
            } else {
                $this->ipnNotificationIds = json_decode($ipnNotificationIds);
            }
    
            if (!empty($this->chargeId)) {
                $chargeState = json_decode($usces->get_order_meta_value(self::CHARGE_STATE, $this->orderid), true);
                $this->chargeState = new Charge\State(
                    $chargeState['state'],
                    $chargeState['reasonCode'],
                    $chargeState['reasonDescription']
                );
            }
    
            if (!empty($this->refundId)) {
                $refundState = json_decode($usces->get_order_meta_value(self::REFUND_STATE, $this->orderid), true);
                $this->refundState = new Refund\State(
                    $refundState['state'],
                    $refundState['reasonCode'],
                    $refundState['reasonDescription']
                );
            }
        }
    
        /**
         * Saves Amazon Pay order meta data with `Get Checkout Session` response and charge
         * state after a successful purchase
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \usc_e_shop $usces
         * @param array             $response
         * @param int               $orderid
         * @param int|string        $amount authorize or capture amount
         * @param string            $currencyCode
         * @param Charge\State|null $chargeState
         * @return void
         */
        public static function saveOrderMetaDataFromCheckoutSession(
            array $response,
            $orderid,
            $amount,
            $currencyCode,
            Charge\State $chargeState = null
        ) {
            global $usces;
    
            $chargePermissionId = $response['chargePermissionId'];
            $chargeId = isset($response['chargeId']) ? $response['chargeId'] : null;
            $serializedChargeState = $chargeState !== null ? json_encode($chargeState) : null;
    
            $usces->set_order_meta_value(self::CHARGE_ID, $chargeId, $orderid);
            $usces->set_order_meta_value(self::CHARGE_PERMISSION_ID, $chargePermissionId, $orderid);
            $usces->set_order_meta_value(self::LINK_KEY, $response['checkoutSessionId'], $orderid);
            $usces->set_order_meta_value(self::CHARGE_STATE, $serializedChargeState, $orderid);
            $usces->set_order_meta_value(self::MOST_RECENT_TRANS_AMOUNT, $amount, $orderid);
            $usces->set_order_meta_value(self::PAYMENT_CURRENCY, $currencyCode, $orderid);
            $usces->set_order_meta_value('wc_trans_id', $chargePermissionId, $orderid);
    
            if ($chargeState !== null) {
                $state = $chargeState->getState();
                if (!empty(Charge\State::STATE_TO_LOG_ACTION[$state])) {
                    (new Logger())->logApiResponse(new Log(
                        $chargePermissionId,
                        Charge\State::STATE_TO_LOG_ACTION[$state],
                        Log::RESPONSE_OK,
                        $amount
                    ));
                }
            } else {
                (new Logger())->logApiResponse(new Log(
                    $chargePermissionId,
                    Log::ACTION_DEFERRED_AUTHORIZE,
                    Log::RESPONSE_OK,
                    $amount
                ));
            }
        }
    
        /**
         * Updates charge state
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \usc_e_shop $usces
         * @param Charge\State $chargeState
         * @return void
         */
        public function updateChargeState(Charge\State $chargeState) {
            global $usces;
    
            $this->chargeState = $chargeState;
            $usces->set_order_meta_value(self::CHARGE_STATE, json_encode($this->chargeState), $this->orderid);
        }
    
        /**
         * Updates refund state
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \usc_e_shop $usces
         * @param Refund\State    $refundState
         * @param int|string|null $refundAmount
         * @return void
         */
        public function updateRefundState(Refund\State $refundState, $refundAmount = null) {
            global $usces;
    
            $this->refundState = $refundState;
            $usces->set_order_meta_value(self::REFUND_STATE, json_encode($this->refundState), $this->orderid);
            if ($refundAmount) {
                $this->mostRecentTransactionAmount = $refundAmount;
                $usces->set_order_meta_value(self::MOST_RECENT_TRANS_AMOUNT, $refundAmount, $this->orderid);
            }
        }
    
        /**
         * Adds IPN notification ID to list if it doesn't already exist
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \usc_e_shop $usces
         * @param string $id
         * @return void
         */
        public function updateNotificationIds($id) {
            global $usces;
    
            if (!in_array($id, $this->ipnNotificationIds, true)) {
                $this->ipnNotificationIds[] = $id;
                $usces->set_order_meta_value(
                    self::IPN_NOTIFICATION_IDS,
                    json_encode($this->ipnNotificationIds),
                    $this->orderid
                );
            }
        }
    
        /**
         * Returns the current transaction state
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return TransactionState
         */
        public function getTransactionState() {
            if (!empty($this->refundId)) {
                $this->refundState->setChargePermissionId($this->getChargePermissionId());
                return $this->refundState;
            } elseif (!empty($this->chargeId)) {
                $this->chargeState->setChargePermissionId($this->getChargePermissionId());
                return $this->chargeState;
            } else {
                $deferred = new DeferredAuthorize\State(DeferredAuthorize\State::DEFERRED_AUTHORIZE);
                $deferred->setChargePermissionId($this->getChargePermissionId());
                return $deferred;
            }
        }
    
        /**
         * Sets Refund state object for the order
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \usc_e_shop $usces
         * @param Refund\State $refundState
         * @param string       $refundId
         * @param int|string   $refundAmount
         * @return void
         */
        public function setRefundState(Refund\State $refundState, $refundId, $refundAmount) {
            global $usces;
    
            $this->refundState = $refundState;
            $this->refundId = $refundId;
            $this->mostRecentTransactionAmount = $refundAmount;
    
            $usces->set_order_meta_value(self::REFUND_STATE, json_encode($this->refundState), $this->orderid);
            $usces->set_order_meta_value(self::REFUND_ID, $this->refundId, $this->orderid);
            $usces->set_order_meta_value(self::MOST_RECENT_TRANS_AMOUNT, $refundAmount, $this->orderid);
        }
    
        /**
         * Sets Charge state object for the order
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \usc_e_shop $usces
         * @param Charge\State $chargeState
         * @param string       $chargeId
         * @param int|string   $chargeAmount
         * @return void
         */
        public function setChargeState(Charge\State $chargeState, $chargeId, $chargeAmount) {
            global $usces;
    
            $this->chargeState = $chargeState;
            $this->chargeId = $chargeId;
            $this->mostRecentTransactionAmount = $chargeAmount;
    
            $usces->set_order_meta_value(self::CHARGE_STATE, json_encode($this->chargeState), $this->orderid);
            $usces->set_order_meta_value(self::CHARGE_ID, $this->chargeId, $this->orderid);
            $usces->set_order_meta_value(self::MOST_RECENT_TRANS_AMOUNT, $chargeAmount, $this->orderid);
        }
    
        /**
         * Getter for `orderid`
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return int
         */
        public function getOrderId() {
            return $this->orderid;
        }
    
        /**
         * Getter for `chargePermissionId`
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return string
         */
        public function getChargePermissionId() {
            return $this->chargePermissionId;
        }
    
        /**
         * Getter for `chargeId`
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return string|null
         */
        public function getChargeId() {
            return $this->chargeId;
        }
    
        /**
         * Getter for `refundId`
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return string|null
         */
        public function getRefundId() {
            return $this->refundId;
        }
    
        /**
         * Getter for `linkKey`
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return string|null
         */
        public function getLinkKey() {
            return $this->linkKey;
        }
    
        /**
         * Getter for `chargeState`
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return Charge\State|null
         */
        public function getChargeState() {
            return $this->chargeState;
        }
    
        /**
         * Getter for `refundState`
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return Refund\State|null
         */
        public function getRefundState() {
            return $this->refundState;
        }
    
        /**
         * Getter for `paymentCurrency`
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return string
         */
        public function getPaymentCurrency() {
            return $this->paymentCurrency;
        }
    
        /**
         * Getter for `mostRecentTransactionAmount`
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return int|string
         */
        public function getMostRecentTransactionAmount() {
            return $this->mostRecentTransactionAmount;
        }
    
        /**
         * Getter for `ipnNotificationIds`
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return string[]
         */
        public function getIpnNotificationIds() {
            return $this->ipnNotificationIds;
        }
    }
    

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


    関数 #関数

    Top ↑

    • __construct — Constructs an AmazonPay order object from an existing transaction
    • getChargeId — Getter for `chargeId`
    • getChargePermissionId — Getter for `chargePermissionId`
    • getChargeState — Getter for `chargeState`
    • getIpnNotificationIds — Getter for `ipnNotificationIds`
    • getLinkKey — Getter for `linkKey`
    • getMostRecentTransactionAmount — Getter for `mostRecentTransactionAmount`
    • getOrderId — Getter for `orderid`
    • getPaymentCurrency — Getter for `paymentCurrency`
    • getRefundId — Getter for `refundId`
    • getRefundState — Getter for `refundState`
    • getTransactionState — Returns the current transaction state
    • saveOrderMetaDataFromCheckoutSession — Saves Amazon Pay order meta data with `Get Checkout Session` response and charge state after a successful purchase
    • setChargeState — Sets Charge state object for the order
    • setRefundState — Sets Refund state object for the order
    • updateChargeState — Updates charge state
    • updateNotificationIds — Adds IPN notification ID to list if it doesn't already exist
    • updateRefundState — Updates refund state

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

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

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

    © 2025 Aivec llc All Rights Reserved.