根据你的观点
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 成功交易后,用户将被重定向到您在 中指定的 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。:-) 我希望它很简单。