Я использую API mindbody api для оплаты, когда я добавляю данные своей кредитной карты, тогда платеж успешен, но когда я использую сохраненную (существующую) карту для оплаты, появляется ошибка:
Card Authorization Failed mb.Core.BLL.Transaction failed validation Could not determine the type of credit card.
мой код:
$shoppingCart = array(
'ClientID' => $client_id,
'Test' => false,
'InStore' => true, //add by NIK
'CartItems' => array(
'CartItem' => array(
'Quantity' => $product_qty,
'Item' => new SoapVar(
array('ID' => $product_id), SOAP_ENC_ARRAY, 'Service', 'http://clients.mindbodyonline.com/api/0_5'
),
'DiscountAmount' => 0
)
),
'Payments' => array(
'PaymentInfo' => new SoapVar(
array(
'LastFour'=>$clientCreditCard->LastFour,
'Amount'=>round($OnlinePrice, 2),
),
SOAP_ENC_ARRAY,
'StoredCardInfo',
'http://clients.mindbodyonline.com/api/0_5'
),
)
);
пожалуйста, дайте какое-либо решение для этого, что я должен сделать или отправить дополнительный параметр.
Спасибо!
Разве это не должно выглядеть больше так?
'Payments' => array(
'PaymentInfo' => new SoapVar(
array(
'CreditCardNumber'=>'4111111111111111',
'ExpYear'=>'2015',
'ExpMonth'=>'06',
'Amount'=>'130',
'BillingAddress'=>'123 Happy Ln',
'BillingPostalCode'=>'93405'
),
SOAP_ENC_ARRAY,
'CreditCardInfo',
'http://clients.mindbodyonline.com/api/0_5'
)
Взято из этого README.md https://github.com/devincrossman/mindbody-php-api
Ваша корзина покупок с сохраненной картой построена правильно.
Я боролся с точно такой же проблемой в течение последних нескольких дней, и я обнаружил, что ошибка в моем случае заключалась в том, что страница внешнего аккаунта передавала номер кредитной карты с пробелами в строке — форма внешнего интерфейса была автоматически добавление пробелов для обычного формата / удобства использования в административной части приложения, где вводятся сохраненные данные карты.
Я решил это, убрав пробелы в PHP: str_replace («», «», $ _POST [‘cardnumber’]) в функции сохранения карты.
Как только я это сделал, процесс оплаты сохраненной карты работал нормально.