Я делаю код бэкенда для формы, которая обновляет кредитную карту через Braintree. Я уверен, что все мои значения в JSON верны. Однако, когда я использую ajax для перехода на страницу бэкэнда, я получаю следующую ошибку в ответе:
Неустранимая ошибка: необработанное исключение InvalidArgumentException с
сообщение «ожидаемый идентификатор кредитной карты будет установлен» в
/var/www/html/braiden/braintree/lib/Braintree/CreditCardGateway.php:431
Трассировка стека:
# 0 /var/www/html/braiden/braintree/lib/Braintree/CreditCardGateway.php(152):
Braintree \ CreditCardGateway -> _ validateId (NULL)
# 1 /var/www/html/braiden/braintree/updateCreditCardBackend.php(18): Braintree \ CreditCardGateway-> find (NULL)
# 2 {main} добавлено в /var/www/html/braiden/braintree/lib/Braintree/CreditCardGateway.php на
линия 431
Вот копия кода, любая помощь здесь была бы полезна.
Во-первых, вот json, который я предоставляю бэкэнд-странице: {Имя: "курица", номер карты: "4111111111111111", Cvv: "747", месяц: "12", год: "22"}
Вот код
<?php require_once 'lib/Braintree.php';
$requestBody = file_get_contents('php://input');
$requestJSON = json_decode($requestBody);
$name = $requestJSON->Name;
$cvv = $requestJSON->Cvv;
$cardNumber = $requestJSON->cardNumber;
$year = $requestJSON->Year;
$month = $requestJSON->Month;
$token = $requestJSON->Token;
$gateway = new Braintree_Gateway([
'environment' => 'sandbox',
'merchantId' => '********',
'publicKey' => '********',
'privateKey' => '********'
]);
$creditCard = $gateway->creditCard()->find($token);
$result = $gateway->creditCard()->update($creditCard->token, [
'cardholderName' => $name,
'cvv' => $cvv,
'number' => $cardNumber,
'expirationMonth' => $month,
'expirationYear' => $year
]);
?>