我正在使用Magento API创建订单。当我想向购物车添加付款方式时,我的代码失败了:
$paymentMethod = array(
“method” => “paypal_standard”
);
$resultPaymentMethod = $proxy->call(
$sessionId,
“cart_payment.method”,
array(
$shoppingCartId,
$paymentMethod
)
);
我收到以下错误:不允许付款方式。
在系统管理部分 - >配置 - > PayPal我设置了网站付款标准,但我没有启用系统中的任何选项 - >配置 - >付款方式导致没有可用于PayPal。 我打电话的时候:
$proxy->call($session, 'cart_payment.list')
方法我得到一个空数组,因为没有任何可用的付款方式集。有人知道在Magento中保存PayPal付款设置的方式和位置吗?
如果我设置了另一种付款方式,例如“checkmo”,那么订单就可以了。问题是我只需要允许Paypal标准付款。
所以我的问题是:如何将PayPal的付款方式设置为购物车,以便我的订单成功创建?
感谢。
答案 0 :(得分:1)
我也面临这个问题并找到理由。
$ method-> canUseInternal()用于付款方式api。当我们在付款方法中使用paypal或其他可重定向的方法时,在这种情况下,$ method-> canUseInternal()会得到false值。
因此,对于这种类型的情况,我们需要创建自己的自定义编码。
api function refreance:
protected function _canUsePaymentMethod($method, $quote){
if (!($method->isGateway() || $method->canUseInternal())) {
return false; }
if (!$method->canUseForCountry($quote->getBillingAddress()->getCountry())) {
return false;
}
if (!$method->canUseForCurrency(Mage::app()->getStore($quote->getStoreId())->getBaseCurrencyCode())) {
return false;
}
答案 1 :(得分:0)
要使用Paypal付款,您需要将您的客户重定向到Paypal。因此,您可能无法使用此付款方式使用API。我建议您查看付款方式的isAvailable()来自定义此行为。