Интеграция Omnipay PayPal с laravel 4

Я хочу интегрировать Omnipay paypal в laravel 4. Я прошел, но я не мог понять, как это сделать. Я не нашел никакой документации. Я прошел через this, this и это. Я установил его с помощью Composer. Теперь я смущен в следующих вопросах.

$gateway = Omnipay::create('PayPal_Express');
$gateway->setUsername('XXXXX');
$gateway->setPassword('XXXX');
$gateway->setSignature('XXXXX');
  • Чьи полномочия будут указаны здесь? Тот, кто покупает, или тот, кому будут переданы деньги. Я либо в случае, когда будут указаны другие учетные данные?

  • Как пользователь будет совершать транзакции? Я видел его функции покупки и покупки, но не мог понять. В обычной интеграции Paypal мы обычно перенаправляем пользователей в Paypal, где он или она завершает транзакцию, а затем возвращается. Как я могу это сделать здесь?

Может ли кто-нибудь направить мне полную документацию, где я могу прочитать весь ее поток?

Ответы

Ответ 1

В соответствии с вашими точками

1-) Здесь вы дадите верительные грамоты того, кому будут переданы деньги. И покупатель передаст свои верительные грамоты на сайте PayPal, он будет перенаправлен.

2-) После того, как объект шлюза и установили учетные данные, вы вызовите метод purchase() omnipay, как следует

$response = $gateway->purchase(
                    array(
                        'cancelUrl' => 'www.xyz.com/cancelurl',
                        'returnUrl' => 'www.xyz.com/returnurl', 
                        'amount' => 25,
                        'currency' => 'USD'
                    )
            )->send();

$response->redirect();

Это перенаправит пользователя на сайт PayPal, где он предоставит свои учетные данные и совершит транзакцию. После успешной транзакции у пользователя paypal будет перенаправлен URL, указанный вами в returnurl. И в returnurl вы создадите тот же объект gateway, как вы делали выше, как указано ниже.

 $gateway = Omnipay::create('PayPal_Express');
 $gateway->setUsername('XXXXX');
 $gateway->setPassword('XXXX');
 $gateway->setSignature('XXXXX');


  $response = $gateway->completePurchase(
                    array(
                        'cancelUrl' => 'www.xyz.com/cancelurl',
                        'cancelUrl' => 'www.xyz.com/cancelurl',
                        'returnUrl' => 'www.xyz.com/returnurl', 
                        'amount' => 25,
                        'currency' => 'USD'
                    )
            )->send();


    $data = $response->getData(); // this is the raw response object
    echo '<pre>';
    print_r($data);

Метод completePurchase завершит транзакцию, и вы получите ответ в массиве.

ПРИМЕЧАНИЕ, когда пользователь перенаправляется на URL-адрес возврата, URL-адрес также содержит transaction_id и payer_id.:-) Надеюсь, это довольно просто.