Magneto 2付款模块-无法获取信用卡号

时间:2019-03-08 20:32:16

标签: magento-2.3

我有以下代码,但无法获取信用卡信息。我回声它,它只是空白。不知道为什么。感谢您的帮助


    namespace Cytruslogic\Subscriptions\Model;
    use \Stripe\Stripe;
    /**
     * Pay In Store payment method model
     */
    class StripeSubscriptions extends \Magento\Payment\Model\Method\AbstractMethod
    {

        /**
         * Payment code
         *
         * @var string
         */

        CONST CODE          = 'stripesubscriptions';
        protected $_code    = self::CODE; 

        /**
         * Availability option
         *
         * @var bool
         */
        protected $_isOffline                   = false;

        protected $_isGateway                   = true;
        protected $_canCapture                  = true;
        protected $_canAuthorize                = true;




        public function capture(\Magento\Payment\Model\InfoInterface $Payment, $Amount) 
        {

            echo $Payment->getCcType();
            throw new \Magento\Framework\Exception\LocalizedException(__('Testing'));

           // echo $payment->getCcNumber();

              /** @var \Magento\Sales\Model\Order\Address $billing */
              /*
              $billing = $order->getBillingAddress();

              try {
                  $requestData = [
                      'amount'        => $amount * 100,
                      'currency'      => strtolower($order->getBaseCurrencyCode()),
                      'description'   => sprintf('#%s, %s', $order->getIncrementId(), $order->getCustomerEmail()),
                      'card'          => [
                          'number'            => $payment->getCcNumber(),
                          'exp_month'         => sprintf('%02d',$payment->getCcExpMonth()),
                          'exp_year'          => $payment->getCcExpYear(),
                          'cvc'               => $payment->getCcCid(),
                          'name'              => $billing->getName(),
                          'address_line1'     => $billing->getStreetLine(1),
                          'address_line2'     => $billing->getStreetLine(2),
                          'address_city'      => $billing->getCity(),
                          'address_zip'       => $billing->getPostcode(),
                          'address_state'     => $billing->getRegion(),
                          'address_country'   => $billing->getCountryId(),
                          // To get full localized country name, use this instead:
                          // 'address_country'   => $this->_countryFactory->create()->loadByCode($billing->getCountryId())->getName(),
                      ]
                  ];

                  $charge = \Stripe\Charge::create($requestData);
                  $payment
                      ->setTransactionId($charge->id)
                      ->setIsTransactionClosed(0);
                } catch (\Exception $e) {
                  $this->debugData(['request' => $requestData, 'exception' => $e->getMessage()]);
                  $this->_logger->error(__('Payment capturing error.'));
                  throw new \Magento\Framework\Validator\Exception(__('Payment capturing error.'));
                }
                */
                return $this;
        }

        public function authorize(\Magento\Payment\Model\InfoInterface $Payment, $Amount) 
        {
            echo 'authorize';

             $Order = $Payment->getOrder();

             print_r($Payment->getCcNumber());
        }

        public function getConfigPaymentAction()
        {
            return self::ACTION_AUTHORIZE_CAPTURE;
        }

        /**
         * Test method to handle an API call for authorization request.
         *
         * @param $request
         * @return array
         * @throws \Magento\Framework\Exception\LocalizedException
         */
        public function makeAuthRequest($request)
        {
            $response = ['transactionId' => 123]; //todo implement API call for auth request.

            if(!$response) {
                throw new \Magento\Framework\Exception\LocalizedException(__('Failed auth request.'));
            }

            return $response;
        }

        /**
         * Test method to handle an API call for capture request.
         *
         * @param $request
         * @return array
         * @throws \Magento\Framework\Exception\LocalizedException
         */
        public function makeCaptureRequest($request)
        {
            $response = ['success']; //todo implement API call for capture request.

            if(!$response) {
                throw new \Magento\Framework\Exception\LocalizedException(__('Failed capture request.'));
            }

            return $response;
        }

    }

0 个答案:

没有答案