【发布时间】:2015-12-29 05:14:04
【问题描述】:
如何使用 paypal 付款方式以编程方式在 magento 中创建订单。
我们已经实现了COD方法或支票/汇票支付方式的代码,现在我需要实现支付,我搜索了很多但没有找到任何答案,有没有合适的方法?
【问题讨论】:
-
你能解决这个问题吗?我也有同样的问题。你能帮我解决这个问题吗
标签: php magento paypal-sandbox
如何使用 paypal 付款方式以编程方式在 magento 中创建订单。
我们已经实现了COD方法或支票/汇票支付方式的代码,现在我需要实现支付,我搜索了很多但没有找到任何答案,有没有合适的方法?
【问题讨论】:
标签: php magento paypal-sandbox
首先贝宝是需要认证的支付方式。
但你可以试试这段代码
文件在这里:app/code/core/Mage/Paypal/Model/Express.php
这里的功能代码:
public function order(Varien_Object $payment, $amount)
{
$this->_placeOrder($payment, $amount);
$payment->setAdditionalInformation($this->_isOrderPaymentActionKey, true);
if ($payment->getIsFraudDetected()) {
return $this;
}
$order = $payment->getOrder();
$orderTransactionId = $payment->getTransactionId();
$api = $this->_callDoAuthorize($amount, $payment, $payment->getTransactionId());
$state = Mage_Sales_Model_Order::STATE_PROCESSING;
$status = true;
$formatedPrice = $order->getBaseCurrency()->formatTxt($amount);
if ($payment->getIsTransactionPending()) {
$message = Mage::helper('paypal')->__('Ordering amount of %s is pending approval on gateway.', $formatedPrice);
$state = Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW;
} else {
$message = Mage::helper('paypal')->__('Ordered amount of %s.', $formatedPrice);
}
$payment->addTransaction(Mage_Sales_Model_Order_Payment_Transaction::TYPE_ORDER, null, false, $message);
$this->_pro->importPaymentInfo($api, $payment);
if ($payment->getIsTransactionPending()) {
$message = Mage::helper('paypal')->__('Authorizing amount of %s is pending approval on gateway.', $formatedPrice);
$state = Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW;
if ($payment->getIsFraudDetected()) {
$status = Mage_Sales_Model_Order::STATUS_FRAUD;
}
} else {
$message = Mage::helper('paypal')->__('Authorized amount of %s.', $formatedPrice);
}
$payment->resetTransactionAdditionalInfo();
$payment->setTransactionId($api->getTransactionId());
$payment->setParentTransactionId($orderTransactionId);
$transaction = $payment->addTransaction(Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH, null, false,
$message
);
$order->setState($state, $status);
$payment->setSkipOrderProcessing(true);
return $this;
}
您可以根据您的基本要求自定义此代码
如果您有任何问题,请告诉我
【讨论】: