Интеграция PayPal REST API в Laravel с помощью Omnipay — требуется параметр карты

Я использую L5 и хочу интегрировать в эту систему свои покупки через PayPal. Песочница уже настроена, и я могу совершать все платежи, используя настоящий пакет API PayPal, но, поскольку я хочу попробовать сделать это с помощью 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 были в моем коде. По нескольким причинам.


person danielwinter    schedule 08.01.2015    source источник


Ответы (2)


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

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

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

person Maximilian Prepl    schedule 08.01.2015

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

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

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

person delatbabel    schedule 13.02.2015
comment
Ну, нет примера использования, и мне кажется, что это просто разветвленный омнипей. Чем он отличается от оригинального omnipay? - person Vladd; 18.07.2015
comment
С тех пор он был объединен с основной веткой, поэтому проверьте его использование и примеры в docblocks класса. - person delatbabel; 18.07.2015