Кредитная карта Braintree и PayPal, Создать новый способ оплаты или используя существующие

Я пытаюсь использовать Braintree для транзакций CreditCard и PayPal. Я настроил клиентскую часть, но у меня возникли трудности с интеграцией на стороне сервера. У меня проблема с созданием способа оплаты, но я хочу, чтобы он проверил, существует ли он уже (та же кредитная карта или учетная запись PayPal) и использует ли он уже существующий. В настоящее время я проверяю, существует ли клиент, и либо создаю нового, либо использую уже существующего клиента. Тогда я использую paymentMethod()->create Функция для создания способа оплаты. Я хочу, чтобы он проверил карту (если это кредитная карта, но не PayPal).

Похоже, что Braintree API — не самый простой API и не очень дружественный к разработчику, который облегчает жизнь разработчика.

Текущий код:

// Create the Customer
if (Gateway::getGateway()->customerExists(Session::get("user_id"))) {
$customerID = Session::get("user_id");
} else {
$result = $gateway->customer()->create([
'email' => Session::get("user_email"),
'firstName' => Session::get("first_name"),
'lastName' => Session::get("last_name"),
'id' => Session::get("user_id"),
'riskData' => [
'customerIp' => RemoteAddress::getIpAddress()
]
]);

if ($result->success) {
$customerID = $result->customer->id;
}
}

// Create payment method
$result = $gateway->paymentMethod()->create([
'customerId' => $customerID,
'paymentMethodNonce' => $nonce,
'deviceData' => $deviceData,
'billingAddress' => [
'countryName' => Session::get("shipping_country"),
'extendedAddress' => Session::get("shipping_addressline2"),
'firstName' => Session::get("first_name"),
'lastName' => Session::get("last_name"),
'locality' => Session::get("shipping_suburb"),
'postalCode' => Session::get("shipping_postcode"),
'region' => Session::get("shipping_state"),
'streetAddress' => Session::get("shipping_addressline1")
],
'options' => [
'verifyCard' => true
]
]);

if ($result->success) {
$paymentMethodToken = $result->paymentMethod->token;

} else {
foreach($result->errors->deepAll() as $error) {
echo 'Error: ' . $error->code . ": " . $error->message . "\n";
}

$verification = $result->creditCardVerification;
echo $verification->status."\n";

echo $verification->processorResponseCode."\n";

echo $verification->processorResponseText."\n";

echo $verification->gatewayRejectionReason."\n";
}

echo $paymentMethodToken;

Спасибо за помощь заранее.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector