Paymill - 交易失败 - ''长度不到1个字符

时间:2016-01-17 15:52:51

标签: php api transactions paymill

我在这个错误中遇到了很长一段时间,我无法弄清楚如何解决这个问题。我检查传递给事务对象的数据是双倍的,甚至是三倍,但仍然无法找出为什么它一直让我这个“''长度小于1个字符”错误消息。我甚至无法在互联网上找到该错误消息的文档。

我的代码的当前状态简要概述:

  1. 我的交易对象创建包含在try..catch语句(\ Paymill \ Services \ PaymillException)

  2. 正确创建了客户端和付款对象。我可以在paymill控制面板上看到这两个。

  3. 我也将购物车数组传递给了Transaction对象

  4. 使用以下序列导出项目描述:trim(substr(html_entity_decode($item['description']), 0, 123)) . "..."

  5. 通过信用卡付款

  6. 首次付款成功,第二次付款失败

  7. 这里是部分异常对象输出:

    [__PHP_Incomplete_Class_Name] => Paymill\Services\PaymillException
                [_errorMessage:Paymill\Services\PaymillException:private] => '' is less than 1 characters long
                [_responseCode:Paymill\Services\PaymillException:private] => 
                [_httpStatusCode:Paymill\Services\PaymillException:private] => 400
                [_rawObject:Paymill\Services\PaymillException:private] => 
                [message:protected] => '' is less than 1 characters long
                [string:Exception:private] => 
                [code:protected] => 400
    ...
    [__PHP_Incomplete_Class_Name] => Paymill\Models\Request\Transaction
                                                [_amount:Paymill\Models\Request\Transaction:private] => 6613
                                                [_description:Paymill\Models\Request\Transaction:private] => Order ID: 111111-11111-1111
                                                [_currency:Paymill\Models\Request\Transaction:private] => EUR
                                                [_payment:Paymill\Models\Request\Transaction:private] => pay_1234566789
                                                [_client:Paymill\Models\Request\Transaction:private] => client_123456
                                                [_preauthorization:Paymill\Models\Request\Transaction:private] => 
                                                [_token:Paymill\Models\Request\Transaction:private] => 123456
                                                [_feeAmount:Paymill\Models\Request\Transaction:private] => 
                                                [_feePayment:Paymill\Models\Request\Transaction:private] => 
                                                [_feeCurrency:Paymill\Models\Request\Transaction:private] => 
                                                [_source:Paymill\Models\Request\Transaction:private] => 
                                                [_shippingAddress:Paymill\Models\Request\Transaction:private] => Array
                                                    (
                                                        [name] => Full name
                                                        [street_address] => full address
                                                        [street_address_addition] => N/A
                                                        [city] => full city
                                                        [state] => state as well
                                                        [postal_code] => 123456
                                                        [country] => CC
                                                    )
    
                                                [_billingAddress:Paymill\Models\Request\Transaction:private] => Array
                                                    (
                                                        [name] => Full name
                                                        [street_address] => full address
                                                        [street_address_addition] => N/A
                                                        [city] => full city
                                                        [state] => state as well
                                                        [postal_code] => 123456
                                                        [country] => CC
                                                        [phone] => 123456
                                                    )
    
                                                [_items:Paymill\Models\Request\Transaction:private] => Array
                                                    (
                                                        [0] => Array
                                                            (
                                                                [name] => full item name
                                                                [amount] => 123456
                                                                [description] => full description
                                                                [quantity] => 1
                                                                [item_number] => 123456-1
                                                                [url] => https://123123.html
                                                            )
    ...
    [_shipping_amount:Paymill\Models\Request\Transaction:private] => 400
                                                [_handling_amount:Paymill\Models\Request\Transaction:private] => 
                                                [_mandateReference:Paymill\Models\Request\Transaction:private] => 
                                                [_id:protected] => 
                                                [_serviceResource:protected] => Transactions/
                                                [_filter:protected] => 
                                            )
    
                                        [1] => create
                                    )
    
                            )
    

    这是我发起交易的方式

    $transaction->setClient($this->getClient()->getId())
                            ->setPayment($this->getPayment()->getId())
                            ->setToken($this->getToken())
                            ->setAmount($this->getBasket('total')*100)
                            ->setBillingAddress($billing_address)
                            ->setShippingAddress($shipping_address)
                            ->setCurrency($this->getConfig('currency'))
                            ->setItems($items)
                            ->setDescription("Order ID: " . $this->getBasket('cart_order_id'))
                            ->setShippingAmount($this->getBasket('shipping')['value']*100);
                $this->d($this->getClient());
                $r = $this->getRequest()->create($transaction);
    

1 个答案:

答案 0 :(得分:1)

问题解决了。其中一个项目是空的描述字段。奇怪的是,Exception没有包含导致问题的字段名称。