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


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

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

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

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

Author: Community, 2013-12-24

1 answers

Согласно вашим пунктам

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-адрес также содержит идентификатор транзакции и идентификатор плательщика. :-) Я надеюсь, что это довольно просто.

 21
Author: Awais Qarni, 2013-12-26 07:59:40