3

我已经到处搜索并在 OmniPays github 上转了一圈,试图找到有关如何在 OmniPay 中实现 PayPal Express 的文档。

        $response = Omnipay::purchase([
            'amount' => $total,
            'encodedTestIDs' => serialize($payForTestID),
            'returnUrl' => 'http://php.bhiceu.com/payment/return',
            'cancelUrl' => 'http://php.bhiceu.com/payment/cancel' 
        ])->send();
        //dd($response);
        //die;
        if ($response->isRedirect()) {
            // redirect to offsite payment gateway
            $response->redirect();
        } else {
            // payment failed: display message to customer
            echo $response->getMessage();
        }

上面的代码成功地将我发送到适当金额的 PayPal,当我取消或检查时,我返回到适当的 URL,但是我得到的只是 paypal 令牌,我找不到任何关于如何处理的文档。

4

2 回答 2

2

您需要使用 completePurchase() 方法完成购买。

在https://github.com/thephpleague/omnipay-example/blob/master/index.php#L203-L218查看omnipay/示例代码

于 2014-06-24T22:03:03.647 回答
1

答案最终很简单,但我不得不深入研究它的源代码,因为该库的文档不存在。

$response = Omnipay::completePurchase([
    'amount' => $price,
    'currency' => $currency
])->send();

您只需调用与初始调用Omnipay::completePurchase相同的amount和。currencyOmnipay::purchase

在此之后,您将使用Omnipay::fetchCheckout()->send()获取诸如送货地址等信息。

于 2018-01-09T20:07:54.777 回答