0

我正在使用 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'
                    ),
                )
            );

请给出任何解决方案,我应该怎么做或发送额外的参数。谢谢!

4

2 回答 2

0

它不应该看起来更像这样吗?

'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

于 2017-09-26T11:35:08.023 回答
0

您的已保存卡片的购物车数组已正确构建。

在过去的几天里,我一直在努力解决完全相同的问题,我发现我的错误是前端帐户页面正在传递带有空格的信用卡号 - 前端表单是自动的在输入保存的卡详细信息的应用程序的管理部分中添加通常格式/可用性原因的空格。

我通过去除 PHP 中的空格来解决它: str_replace(" ", "", $_POST['cardnumber']) 在卡片保存功能中。

一旦我这样做了,保存的卡支付过程就可以正常工作。

于 2017-10-10T09:04:43.483 回答