Omnipay 贝宝与 laravel 4 的集成

Posted

技术标签:

【中文标题】Omnipay 贝宝与 laravel 4 的集成【英文标题】:Omnipay paypal integration with laravel 4 【发布时间】:2014-01-12 09:52:30 【问题描述】:

我想在laravel 4 中集成 Omnipay paypal。我已经完成了,但我无法理解如何去做。我没有找到任何文档。我经历过this、this 和this。 我已经使用 Composer 安装了它。现在我对以下问题感到困惑。

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

    此处将提供谁的凭据?正在购买的人或将向其转移资金的人。我是否会提供其他人的凭据?

    用户将如何进行交易?我看过它的购买和购买完整功能,但无法理解。在正常的 Paypal 集成中,我们通常将用户重定向到 Paypal,在那里他或她完成交易然后返回。我该怎么做?

谁能指导我完整的文档,让我可以阅读其整个流程?

【问题讨论】:

【参考方案1】:

根据你的观点

1-) 在这里,您将提供将向其转移资金的人的凭据。买家将在 PayPal 网站上提供他的凭据,他将被重定向。

2-) 获得网关对象并设置凭据后,您将调用omnipay 的purchase() 方法,如下所示

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

$response->redirect();

这会将用户重定向到贝宝网站,在那里他将提供他的凭据并进行交易。在 paypal 成功交易后,用户将被重定向到您在returnurl 中指定的 URL。在 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。 :-) 我希望它很简单。

【讨论】:

以上是关于Omnipay 贝宝与 laravel 4 的集成的主要内容,如果未能解决你的问题,请参考以下文章

如何将贝宝与codeigniter集成?

Omnipay:贝宝 REST API 集成

Omnipay 贝宝集成 - 确认付款状态

贝宝与 Braintree Drop-In

无法在标头中使用带有 JQuery 的 omnipay 重定向到贝宝

Omnipay - 使用 Paypal Express 结帐 Laravel