Интеграция REST API PayPal в Laravel с использованием Omnipay — необходим параметр карты

Я использую L5 и хочу интегрировать мои покупки PayPal в эту систему. Песочница уже настроена, и я могу делать все свои платежи, используя реальный пакет PayPal API, но, поскольку я хочу попробовать сделать это с Omnipay, я немного борюсь:

Когда я выполняю этот код:

Route::get('test', function()
{
$gateway = Omnipay::create('PayPal_Rest');
$gateway->setClientId('{my id}');
$gateway->setSecret('{my secret}');
$gateway->setTestMode(true);

$params = array(
'cancelUrl' => 'http://webshop.app',
'returnUrl' => 'http://webshop.app/testresp',
'name'  => 'Your Purchase',
'description' => 'Your Description',
'amount' => '15.99',
'currency' => 'EUR'
);

Session::put('params', $params);
Session::save();

$resp = $gateway->purchase($params)->send();

if ($resp->isSuccessful()) {
// payment was successful: update database
print_r($resp);
} elseif ($resp->isRedirect()) {
// redirect to offsite payment gateway
$resp->redirect();
} else {
// payment failed: display message to customer echo
$resp->getMessage();
}
});

Я получаю это:
InvalidRequestException in AbstractRequest.php line 122:
The card parameter is required

Похоже, мне нужно было бы инициировать эту покупку с информацией о кредитной карте клиента, которую я не хочу собирать (следовательно, сначала использую PayPal). Есть ли способ использовать этот API без использования кредитной карты?

Мне не нравится использование Express API, поскольку я не хочу, чтобы мое имя пользователя и пароль PayPal были в моем коде. По нескольким причинам.

2

Решение

Поле массива карт является обязательным. указывать номер кредитной карты не обязательно, но вам нужно будет предоставить некоторую информацию.

Из официальных документов:

Даже внешние шлюзы используют объект CreditCard, потому что часто вам необходимо передавать клиенту информацию о счетах или доставке через шлюз.

1

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

Проверьте следующую ветку моего форка кода шлюза omnipay-paypal: https://github.com/delatbabel/omnipay-paypal/tree/accept-paypal-payments

Это включает в себя код, который позволяет вам не проходить через кредитную карту и заставить PayPal выполнять обработку платежей.

Я представил PR, но он еще не был объединен с основным хранилищем omnipay-paypal.

0

По вопросам рекламы [email protected]