[magento2 fetchone]magento2 添加支付方式payment method

时间:2019-12-07  来源:magento  阅读:

一:启动文件 \app\code\Inchoo\Stripe\etc\module.xml

























二:配置文件config.xml \app\code\Inchoo\Stripe\etc\config.xml











1

More\\Payment\\Model\\Payment

authorize_capture

Payment



AE,VI,MC,DI,JCB

1

0.50








三:后台配置文件 app\code\Inchoo\Stripe\etc\adminhtml\system2.xml













 





Magento\\Backend\\Model\\Config\\Source\\Yesno













Magento\\Backend\\Model\\Config\\Backend\\Encrypted







Magento\\Backend\\Model\\Config\\Source\\Yesno







More\\Payment\\Model\\Source\\Cctype













Magento\\Payment\\Model\\Config\\Source\\Allspecificcountries







Magento\\Directory\\Model\\Config\\Source\\Country













Leave empty to disable limit










四:model类 因为我们在config.xml配置了model,所以前台点击保存支付方式的时候 触发

_stripeApi = $stripe;

// $this->_stripeApi->setApiKey(

// $this->getConfigData('api_key')

// );

 

$this->_minAmount = $this->getConfigData('min_order_total');

$this->_maxAmount = $this->getConfigData('max_order_total');

}

 

/**

* 支付捕获方法

* *

* @param \\Magento\\Framework\\Object $payment

* @param float $amount

* @return $this

* @throws \\Magento\\Framework\\Model\\Exception

*/

public function capture(\\Magento\\Framework\\Object $payment, $amount)

{

/** @var Magento\\Sales\\Model\\Order $order */

$order = $payment->getOrder();

 

/** @var Magento\\Sales\\Model\\Order\\Address $billing */

$billing = $order->getBillingAddress();

 

try {

$charge = \\Stripe_Charge::create(array(

'amount' => $amount * 100,

'currency' => strtolower($order->getBaseCurrencyCode()),

'description' => sprintf('#%s, %s', $order->getIncrementId(), $order->getCustomerEmail()),

'card' => array(

'number' => $payment->getCcNumber(),

'number' => $payment->getCcNumber(),

'exp_month' => sprintf('%02d',$payment->getCcExpMonth()),

'exp_year' => $payment->getCcExpYear(),

'cvc' => $payment->getCcCid(),

'name' => $billing->getName(),

'address_line1' => $billing->getStreet(1),

'address_line2' => $billing->getStreet(2),

'address_zip' => $billing->getPostcode(),

'address_state' => $billing->getRegion(),

'address_country' => $billing->getCountry(),

),

));

 

$payment

->setTransactionId($charge->id)

->setIsTransactionClosed(0);

} catch (\\Exception $e) {

$this->debugData($e->getMessage());

$this->_logger->logException(__('Payment capturing error.'));

throw new \\Magento\\Framework\\Model\\Exception(__('Payment capturing error.'));

}

 

return $this;

}

 

/**

* Payment refund

*

* @param \\Magento\\Framework\\Object $payment

* @param float $amount

* @return $this

* @throws \\Magento\\Framework\\Model\\Exception

*/

public function refund(\\Magento\\Framework\\Object $payment, $amount)

{

$transactionId = $payment->getParentTransactionId();

 

try {

\\Stripe_Charge::retrieve($transactionId)->refund();

} catch (\\Exception $e) {

$this->debugData($e->getMessage());

$this->_logger->logException(__('Payment refunding error.'));

throw new \\Magento\\Framework\\Model\\Exception(__('Payment refunding error.'));

}

 

$payment

->setTransactionId($transactionId . '-' . \\Magento\\Sales\\Model\\Order\\Payment\\Transaction::TYPE_REFUND)

->setParentTransactionId($transactionId)

->setIsTransactionClosed(1)

->setShouldCloseParentTransaction(1);

 

return $this;

}

 

/**

* Determine method availability based on quote amount and config data

*

* @param null $quote

* @return bool

*/

public function isAvailable($quote = null)

{

if ($quote && (

$quote->getBaseGrandTotal() < $this->_minAmount

|| ($this->_maxAmount && $quote->getBaseGrandTotal() > $this->_maxAmount))

) {

return false;

}

 

// if (!$this->getConfigData('api_key')) {

// return false;

// }

 

return parent::isAvailable($quote);

}

 

/**

* Availability for currency

*

* @param string $currencyCode

* @return bool

*/

public function canUseForCurrency($currencyCode)

{

if (!in_array($currencyCode, $this->_supportedCurrencyCodes)) {

return false;

}

return true;

}

}

 

[magento2 fetchone]magento2 添加支付方式payment method

http://m.bbyears.com/wangyezhizuo/82620.html

推荐访问:magento2中怎么使用自带的弹框 magento2安装
相关阅读 猜你喜欢
本类排行 本类最新