本文整理汇总了PHP中Mage_Sales_Model_Order_Payment::getMethodInstance方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Order_Payment::getMethodInstance方法的具体用法?PHP Mage_Sales_Model_Order_Payment::getMethodInstance怎么用?PHP Mage_Sales_Model_Order_Payment::getMethodInstance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Sales_Model_Order_Payment
的用法示例。
在下文中一共展示了Mage_Sales_Model_Order_Payment::getMethodInstance方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: importOrderPayment
/**
* Import payment data to billing agreement
*
* $payment->getBillingAgreementData() contains array with following structure :
* [billing_agreement_id] => string
* [method_code] => string
*
* @param Mage_Sales_Model_Order_Payment $payment
* @return Mage_Sales_Model_Billing_Agreement
*/
public function importOrderPayment(Mage_Sales_Model_Order_Payment $payment)
{
$baData = $payment->getBillingAgreementData();
$this->_paymentMethodInstance = isset($baData['method_code']) ? Mage::helper('payment')->getMethodInstance($baData['method_code']) : $payment->getMethodInstance();
if ($this->_paymentMethodInstance) {
$this->_paymentMethodInstance->setStore($payment->getMethodInstance()->getStore());
$this->setCustomerId($payment->getOrder()->getCustomerId())->setMethodCode($this->_paymentMethodInstance->getCode())->setReferenceId($baData['billing_agreement_id'])->setStatus(self::STATUS_ACTIVE);
}
return $this;
}
示例2: _buildRequest
/**
* Build the request with necessary parameters for doAuthorisation() and doTransaction()
*
* @param Mage_Sales_Model_Order_Payment $payment
* @param $amount
* @return Eway_Rapid31_Model_Request_Direct
*/
protected function _buildRequest(Mage_Sales_Model_Order_Payment $payment, $amount)
{
// Empty Varien_Object's data
$this->unsetData();
$methodInstance = $payment->getMethodInstance();
$infoInstance = $methodInstance->getInfoInstance();
$order = $payment->getOrder();
$billing = $order->getBillingAddress();
$shipping = $order->getShippingAddress();
$this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
if (Mage::helper('ewayrapid')->isBackendOrder()) {
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
} else {
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
}
$this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion());
$this->setShippingMethod('Other');
$paymentParam = Mage::getModel('ewayrapid/field_payment');
$paymentParam->setTotalAmount($amount)->setCurrencyCode($order->getBaseCurrencyCode());
$this->setPayment($paymentParam);
$customerParam = Mage::getModel('ewayrapid/field_customer');
$customerParam->setTitle($billing->getPrefix())->setFirstName($billing->getFirstname())->setLastName($billing->getLastname())->setCompanyName($billing->getCompany())->setJobDescription('')->setStreet1($billing->getStreet1())->setStreet2($billing->getStreet2())->setCity($billing->getCity())->setState($billing->getRegion())->setPostalCode($billing->getPostcode())->setCountry(strtolower($billing->getCountryModel()->getIso2Code()))->setEmail($billing->getEmail())->setPhone($billing->getTelephone())->setMobile('')->setComments('')->setFax($billing->getFax())->setUrl('');
$cardDetails = Mage::getModel('ewayrapid/field_cardDetails');
$cardDetails->setName($infoInstance->getCcOwner())->setNumber($infoInstance->getCcNumber())->setExpiryMonth($infoInstance->getCcExpMonth())->setExpiryYear($infoInstance->getCcExpYear())->setCVN($infoInstance->getCcCid());
$customerParam->setCardDetails($cardDetails);
$this->setCustomer($customerParam);
$shippingParam = Mage::getModel('ewayrapid/field_shippingAddress');
$shippingParam->setFirstName($shipping->getFirstname())->setLastName($shipping->getLastname())->setStreet1($shipping->getStreet1())->setStreet2($shipping->getStreet2())->setCity($shipping->getCity())->setState($shipping->getRegion())->setPostalCode($shipping->getPostcode())->setCountry(strtolower($shipping->getCountryModel()->getIso2Code()))->setEmail($shipping->getEmail())->setPhone($shipping->getTelephone())->setFax($shipping->getFax());
$this->setShippingAddress($shippingParam);
if ($methodInstance->getConfigData('transfer_cart_items')) {
$orderItems = $order->getAllVisibleItems();
$lineItems = array();
foreach ($orderItems as $orderItem) {
/* @var Mage_Sales_Model_Order_Item $orderItem */
$lineItem = Mage::getModel('ewayrapid/field_lineItem');
$lineItem->setSKU($orderItem->getSku());
$lineItem->setDescription(substr($orderItem->getName(), 0, 26));
$lineItem->setQuantity($orderItem->getQtyOrdered());
$lineItem->setUnitCost(round($orderItem->getBasePrice() * 100));
$lineItem->setTax(round($orderItem->getBaseTaxAmount() * 100));
$lineItem->setTotal(round($orderItem->getBaseRowTotalInclTax() * 100));
$lineItems[] = $lineItem;
}
$this->setItems($lineItems);
}
return $this;
}
示例3: init
/**
* @param Mage_Sales_Model_Order_Payment $payment
*/
protected function init(Mage_Sales_Model_Order_Payment $payment)
{
$this->setOrder($payment->getOrder());
$this->setPaymentMethod($payment->getMethodInstance());
}
示例4: _encryptPaymentData
/**
* Encrypt the payment data for the given payment model
*
* @param Mage_Sales_Model_Quote_Payment|Mage_Sales_Model_Order_Payment $payment Payment Model
*/
protected function _encryptPaymentData($payment)
{
try {
$method = $payment->getMethodInstance();
} catch (Exception $e) {
return $this;
}
if ($method instanceof Itabs_Debit_Model_Debit) {
$info = $method->getInfoInstance();
if ($payment->getData('debit_swift') != '') {
$payment->setData('debit_swift', $info->encrypt($payment->getData('debit_swift')));
}
if ($payment->getData('debit_iban') != '') {
$payment->setData('debit_iban', $info->encrypt($payment->getData('debit_iban')));
}
}
}
示例5: _buildRequest
protected function _buildRequest(Mage_Sales_Model_Order_Payment $payment, $amount)
{
// Empty Varien_Object's data
$this->unsetData();
// in case recurring profile, $methodInstance is not exist, and $payment->getIsRecurring() is used
if (!$payment->getIsRecurring()) {
$methodInstance = $payment->getMethodInstance();
$infoInstance = $methodInstance->getInfoInstance();
Mage::helper('ewayrapid')->unserializeInfoInstace($infoInstance);
}
$order = $payment->getOrder();
$shipping = $order->getShippingAddress();
$this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
if (Mage::helper('ewayrapid')->isBackendOrder()) {
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
} elseif ($payment->getIsRecurring()) {
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_RECURRING);
} else {
$this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
}
$this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion());
$this->setShippingMethod('Other');
$paymentParam = Mage::getModel('ewayrapid/field_payment');
$paymentParam->setTotalAmount($amount)->setCurrencyCode($order->getBaseCurrencyCode());
$this->setPayment($paymentParam);
$customerParam = Mage::getModel('ewayrapid/field_customer');
$customerTokenId = null;
/** get $customerTokenId if product is recurring profile */
if ($payment->getIsRecurring()) {
/** @todo save customer id and tokent id into payment when place order */
$customer = Mage::getModel('customer/customer')->load($payment->getCustomerId());
$customerHelper = Mage::helper('ewayrapid/customer');
$customerHelper->setCurrentCustomer($customer);
$customerTokenId = $customerHelper->getCustomerTokenId($payment->getTokenId());
} else {
/** get $customerTokenId if product is normal item */
if ($infoInstance->getSavedToken()) {
$customerHelper = Mage::helper('ewayrapid/customer');
$customerTokenId = $customerHelper->getCustomerTokenId($infoInstance->getSavedToken());
} else {
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while making the transaction: Token info does not exist.'));
}
}
if ($customerTokenId) {
$customerParam->setTokenCustomerID($customerTokenId);
if ($this->getTransactionType() == Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE) {
$cardDetails = Mage::getModel('ewayrapid/field_cardDetails');
$cardDetails->setCVN($infoInstance->getCcCid());
$customerParam->setCardDetails($cardDetails);
}
$this->setCustomer($customerParam);
} else {
Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while making the transaction: Token info does not exist.'));
}
$shippingParam = Mage::getModel('ewayrapid/field_shippingAddress');
$shippingParam->setFirstName($shipping->getFirstname())->setLastName($shipping->getLastname())->setStreet1($shipping->getStreet1())->setStreet2($shipping->getStreet2())->setCity($shipping->getCity())->setState($shipping->getRegion())->setPostalCode($shipping->getPostcode())->setCountry(strtolower($shipping->getCountryModel()->getIso2Code()))->setEmail($shipping->getEmail())->setPhone($shipping->getTelephone())->setFax($shipping->getFax());
$this->setShippingAddress($shippingParam);
if (isset($methodInstance) && $methodInstance->getConfigData('transfer_cart_items') || $payment->getIsRecurring() || !$payment->getIsInitialFee()) {
$orderItems = $order->getAllVisibleItems();
$lineItems = array();
foreach ($orderItems as $orderItem) {
/* @var Mage_Sales_Model_Order_Item $orderItem */
$lineItem = Mage::getModel('ewayrapid/field_lineItem');
$lineItem->setSKU($orderItem->getSku());
$lineItem->setDescription(substr($orderItem->getName(), 0, 26));
$lineItem->setQuantity($orderItem->getQtyOrdered());
$lineItem->setUnitCost(round($orderItem->getBasePrice() * 100));
$lineItem->setTax(round($orderItem->getBaseTaxAmount() * 100));
$lineItem->setTotal(round($orderItem->getBaseRowTotalInclTax() * 100));
$lineItems[] = $lineItem;
}
$this->setItems($lineItems);
}
return $this;
}
示例6: getHtmlTransactionId
/**
* Get HTML representation for transaction id for Payment Bridge methods
*
* @param Mage_Sales_Model_Order_Payment $payment
* @param string $txnId
* @return string
*/
public function getHtmlTransactionId(Mage_Sales_Model_Order_Payment $payment, $txnId)
{
$methodInstance = $payment->getMethodInstance();
$methodCode = method_exists($methodInstance, 'getOriginalCode') ? $methodInstance->getOriginalCode() : $methodInstance->getCode();
return Mage::helper('paypal')->getHtmlTransactionId($methodCode, $txnId);
}
示例7: setPaymentTransactionInformation
/**
* Set Payment Transaction Information
*
* @param Mage_Sales_Model_Order_Payment $payment Sales Payment Model
* @param array $params Request params
* @param string $action Action (accept|cancel|decline|wait|exception)
*/
protected function setPaymentTransactionInformation(Mage_Sales_Model_Order_Payment $payment, $params, $action)
{
$payment->setTransactionId($params['PAYID']);
$code = $payment->getMethodInstance()->getCode();
$isInline = false;
/* In authorize mode we still have no authorization transaction for CC and DirectDebit payments,
* so capture or cancel won't work. So we need to create a new authorization transaction for them
* when a payment was accepted by Barclaycard
*
* In exception-case we create the authorization-transaction too because some exception-cases can turn into accepted
*/
if (('accept' === $action || 'exception' === $action) && in_array($code, array('ops_cc', 'ops_directDebit'))) {
$payment->setIsTransactionClosed(false);
$isInline = $this->isInlinePayment($payment);
/* create authorization transaction for non-inline pms */
if (false === $isInline || (array_key_exists('HTML_ANSWER', $params) || 0 < strlen($payment->getAdditionalInformation('HTML_ANSWER')))) {
$payment->addTransaction("authorization", null, true, $this->__("Process outgoing transaction"));
}
$payment->setLastTransId($params['PAYID']);
}
/* Barclaycard sends parameter HTML_ANSWER to trigger 3D secure redirection */
if (isset($params['HTML_ANSWER']) && 'ops_cc' == $code) {
$payment->setAdditionalInformation('HTML_ANSWER', $params['HTML_ANSWER']);
$payment->setIsTransactionPending(true);
}
$payment->setAdditionalInformation('paymentId', $params['PAYID']);
$payment->setAdditionalInformation('status', $params['STATUS']);
if (array_key_exists('ACCEPTANCE', $params) && 0 < strlen(trim($params['ACCEPTANCE']))) {
$payment->setAdditionalInformation('acceptance', $params['ACCEPTANCE']);
}
if (array_key_exists('BRAND', $params) && 'ops_cc' == $code && 0 < strlen(trim($params['BRAND']))) {
$payment->setAdditionalInformation('CC_BRAND', $params['BRAND']);
}
if (false === $isInline || array_key_exists('HTML_ANSWER', $params)) {
$payment->setIsTransactionClosed(true);
}
$payment->setDataChanges(true);
$payment->save();
}
示例8: setPaymentTransactionInformation
/**
* Set Payment Transaction Information
*
* @param Mage_Sales_Model_Order_Payment $payment Sales Payment Model
* @param array $params Request params
*/
protected function setPaymentTransactionInformation($payment, $params)
{
$payment->setTransactionId($params['PAYID']);
$code = $payment->getMethodInstance()->getCode();
if (in_array($code, array('postfinance_cc', 'postfinance_directDebit'))) {
$payment->setIsTransactionClosed(false);
$payment->addTransaction("authorization", null, true, $this->__("Process outgoing transaction"));
$payment->setLastTransId($params['PAYID']);
if (isset($params['HTML_ANSWER'])) {
$payment->setAdditionalInformation('HTML_ANSWER', $params['HTML_ANSWER']);
}
}
$payment->setAdditionalInformation('paymentId', $params['PAYID']);
$payment->setAdditionalInformation('status', $params['STATUS']);
$payment->setIsTransactionClosed(true);
$payment->setDataChanges(true);
$payment->save();
}
示例9: canNotUseOrderId
protected function canNotUseOrderId(Mage_Sales_Model_Order_Payment $payment)
{
$methodInstance = $payment->getMethodInstance();
return $methodInstance instanceof Netresearch_OPS_Model_Payment_Kwixo_Abstract || $methodInstance instanceof Netresearch_OPS_Model_Payment_DirectDebit || $methodInstance instanceof Netresearch_OPS_Model_Payment_Cc && $methodInstance->hasBrandAliasInterfaceSupport($payment);
}
示例10: getMethodInstance
public function getMethodInstance()
{
$method = parent::getMethodInstance();
return $method->setStore($this->getOrder()->getStore());
}