2016-12-10 7 views
1

Я использую способ оплаты кредитной карты на веб-сайте в моем магазине magento и разрабатываю мобильное приложение. Я разрабатываю api, используя собственный magento api. Проблема возникла при создании порядка api, все до тех пор, пока добавление платежа за кредитную карту с полосой не прекратится, но когда я нахожусь в порядке создания api, это вызывает исключение. «Несоответствие номера кредитной карты с исключением типа кредитной карты»Неверный номер кредитной карты Magento с исключением типа кредитной карты

Ниже приведен код api. Поделитесь своими знаниями по этой проблеме. Заранее спасибо.

$proxy = new SoapClient($this->_client); //soap handle 
    $sessionId = $proxy->login($this->_apiuser, $this->_apikey); 
    $resultCustomerAddresses = $proxy->call($sessionId, "cart_customer.addresses", array($shoppingCartId, $arrAddresses)); 
    if ($resultCustomerAddresses != TRUE) 
    { 
     return json_encode(array('status' => 0, 'result' => array(),'message' => 'Error in saving address')); 
    } 
    $resultShippingMethods = $proxy->call($sessionId, "cart_shipping.list", array($shoppingCartId)); 
    $randShippingMethodIndex = rand(0, count($resultShippingMethods)-1); 
    $shippingMethod = $resultShippingMethods[$randShippingMethodIndex]["code"]; 

    $resultShippingMethod = $proxy->call($sessionId, "cart_shipping.method", array($shoppingCartId, $shipping_method)); 

    //$resultTotalOrder = $proxy->call($sessionId,'cart.totals',array($shoppingCartId)); 

    $paymentMethod = array(
     "method" => $payment_method 
    ); 

    $resultPaymentMethod = $proxy->call($sessionId, "cart_payment.method", array($shoppingCartId, $payment_method)); 

    $licenseForOrderCreation = null; 

    $resultOrderCreation = $proxy->call($sessionId,"cart.order",array($shoppingCartId, null, $licenseForOrderCreation)); 

ответ

1

У меня была такая же проблема, и успешно решить ее, увидеть этот ответ: https://stackoverflow.com/a/41948259/1052675

В принципе, вы поставить данные карты, прежде чем сохранить цитату. Он будет проверять карту против шаблонов регулярных выражений и настроенных ограничений на покупку и убедиться, что вы можете использовать способ оплаты.

Тогда он забудет информацию о платеже.

Поэтому перед тем, как вы сообщите ему, чтобы отправить заказ, вам необходимо снова предоставить информацию о карте.

Мое решение было удобной конечной точкой для простоты приложения на передней панели, и это позволило мне сохранить информацию о карте в памяти, чтобы повторно сохранить между сохранением цитаты и отправкой заказа.

+0

Хотя это теоретически может ответить на вопрос, было бы [предпочтительнее включить основные части ответа] (http://meta.stackoverflow.com/q/8259) здесь и предоставить ссылку для справки. –

+0

Спасибо Стивену, я расширил ответ. –

Смежные вопросы