mindbody-php-api存储信用卡付款?

时间:2017-09-26 10:44:51

标签: php api soap mindbody

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

请为此提供任何解决方案,我该怎么办或发送额外的参数。 谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

正确构建了已保存卡片的购物车阵列。

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

我通过剥离PHP中的空格解决了它:str_replace("","",$ _POST [' cardnumber'])保存功能。

一旦我这样做,保存的卡支付流程就可以了。