我正在使用Magento API来创建订单。当我想要向购物车添加支付方式时,我的代码失败:
$paymentMethod = array(
“method” => “paypal_standard”
);
$resultPaymentMethod = $proxy->call(
$sessionId,
“cart_payment.method”,
array(
$shoppingCartId,
$paymentMethod
)
);
我收到以下错误:不允许使用支付方式。
在管理部分的系统->配置->贝宝我已经设置了网站支付标准,但我没有启用任何选项,在系统->配置->支付方法,因为有没有PayPal可用。当我调用时:
$proxy->call($session, 'cart_payment.list')
方法时,我得到一个空数组,因为没有设置任何可用的支付方法。有人知道如何在Magento中保存paypal支付设置吗?
如果我设置另一种支付方式,如"checkmo“,那么订单创建得很好。事情是,我只需要允许贝宝标准付款。
所以我的问题是:如何将付款方式设置为PayPal到购物车,以便我的订单将被成功创建?
谢谢。
发布于 2014-05-16 01:25:40
我也面临着这个问题,并找到了原因。
$ method ->支付方式接口使用的canUseInternal()。当我们在payment methos api中使用paypal或其他可重定向的方法时,在这种情况下$method->canUseInternal()会得到假的值。
因此对于这种类型的情况,我们需要创建自己的自定义编码。
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;
}
发布于 2013-06-27 04:02:13
支付与贝宝,你需要你的客户被重定向到贝宝。因此,您可能无法使用API使用此支付方式。我建议您查看支付方法的isAvailable()以自定义此行为。
https://stackoverflow.com/questions/14876423
复制相似问题