根据你的观点
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。 :-) 我希望它很简单。