Я пытаюсь отправить запрос на покупку в конечную точку симулятора (https://test.sagepay.com/Simulator/VSPDirectGateway.asp) со следующими данными:
array(35) {
["VPSProtocol"]=>
string(4) "2.23"["TxType"]=>
string(7) "PAYMENT"["Vendor"]=>
string(9) "MY VENDOR NAME"["AccountType"]=>
string(1) "E"["Description"]=>
string(13) "My Test Order"["Amount"]=>
string(4) "1.50"["Currency"]=>
string(3) "GBP"["VendorTxCode"]=>
string(1) "3"["ClientIPAddress"]=>
NULL
["ApplyAVSCV2"]=>
int(0)
["Apply3DSecure"]=>
int(0)
["BillingFirstnames"]=>
string(3) "Sam"["BillingSurname"]=>
string(4) "King"["BillingAddress1"]=>
string(1) "1"["BillingAddress2"]=>
string(1) "2"["BillingCity"]=>
string(8) "Brighton"["BillingPostCode"]=>
string(3) "BN1"["BillingState"]=>
string(0) ""["BillingCountry"]=>
string(2) "GB"["BillingPhone"]=>
NULL
["DeliveryFirstnames"]=>
NULL
["DeliverySurname"]=>
NULL
["DeliveryAddress1"]=>
NULL
["DeliveryAddress2"]=>
NULL
["DeliveryCity"]=>
NULL
["DeliveryPostCode"]=>
NULL
["DeliveryState"]=>
string(0) ""["DeliveryCountry"]=>
NULL
["DeliveryPhone"]=>
NULL
["CustomerEMail"]=>
NULL
["CardHolder"]=>
string(8) "Sam King"["CardNumber"]=>
string(16) "4012888888881881"["CV2"]=>
string(3) "123"["ExpiryDate"]=>
string(4) "0215"["CardType"]=>
string(4) "visa"}
Однако все, что я постоянно получаю от Sagepay, это ошибка валидации:
«Поле CardHolder должно быть длиной от 1 до 50 символов».
Однако, как видно из приведенного выше массива данных, я отправляю значение CardHolder «Sam King», длина которого явно составляет от 1 до 50 символов.
Для справки я использую Omnipay (https://github.com/thephpleague/omnipay) библиотека для отправки запросов.
Есть идеи, что я могу делать не так?
Задача ещё не решена.
Других решений пока нет …