PayPal是目前最廣泛應用于國際交易和電子商務的支付平臺,而php是一種腳本語言,常用于web開發領域。本文主要談論如何在php中集成PayPal收款功能,使得企業可以更加方便地進行電商業務。
首先需要在PayPal官網上申請開發者賬號,并創建一個沙盒賬號用于測試。然后可以使用PayPal API來集成支付功能。PayPal API是一組開放Web服務API,可以讓開發人員可以在他們的Web站點上與PayPal互動,并接收回應。接下來,可以使用REST API或者Classic API來構建PayPal支付功能。
使用REST API時,需要在PayPal developer網站上獲取client id和client secret,并使用這些憑證初始化PayPal環境。示例代碼如下:
$apiContext = new \PayPal\Rest\ApiContext( new \PayPal\Auth\OAuthTokenCredential( 'CLIENT_ID', // ClientID 'CLIENT_SECRET' // ClientSecret ) );接下來,可以設置貨幣代碼和總金額并發起支付請求。示例代碼如下:
$payer = new \PayPal\Api\Payer(); $payer->setPaymentMethod('paypal'); $amount = new \PayPal\Api\Amount(); $amount->setTotal('100.00'); $amount->setCurrency('USD'); $transaction = new \PayPal\Api\Transaction(); $transaction->setAmount($amount); $redirectUrls = new \PayPal\Api\RedirectUrls(); $redirectUrls->setReturnUrl('http://example.com/success') ->setCancelUrl('http://example.com/cancel'); $payment = new \PayPal\Api\Payment(); $payment->setIntent('sale') ->setPayer($payer) ->setTransactions(array($transaction)) ->setRedirectUrls($redirectUrls); $payment->create($apiContext);這里創建了一個基本的支付請求,使用PayPal的API創建了一個payer對象、amount對象、transaction對象和一個redirectUrls對象,最后加入到了payment對象中。接下來使用create()方法發起請求,生成PayPal支付鏈接。 使用Classic API時,需要下載PayPal SDK,官方提供了多種編程語言的SDK,包括php版本。使用Classic API可以通過設置一些參數來發起支付請求。示例代碼如下:
$payment_data = array( 'USER' =>'api_username', 'PWD' =>'api_password', 'SIGNATURE' =>'api_signature', 'METHOD' =>'SetExpressCheckout', 'VERSION' =>self::API_VERSION, 'PAYMENTREQUEST_0_PAYMENTACTION' =>'Sale', 'PAYMENTREQUEST_0_AMT' =>'100.00', 'PAYMENTREQUEST_0_CURRENCYCODE' =>'USD', 'RETURNURL' =>'http://example.com/success', 'CANCELURL' =>'http://example.com/cancel', ); $paypal_api_endpoint = 'https://api-3t.paypal.com/nvp'; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL =>$paypal_api_endpoint, CURLOPT_POST =>1, CURLOPT_POSTFIELDS =>http_build_query($payment_data), CURLOPT_RETURNTRANSFER =>1, CURLOPT_SSL_VERIFYPEER =>false, CURLOPT_SSL_VERIFYHOST =>false )); $response = curl_exec($curl);這里使用了Classic API的SetExpressCheckout方法,傳遞了對應的參數值,再通過curl庫發起POST請求,獲取PayPal回應。 在獲取回應之后,可以解析回應的信息,檢查支付是否成功,可以使用REST或Classic API的GetPaymentDetails方法來查詢支付詳細信息。 示例代碼如下:
$paymentId = 'PAY-XXXXXXXXXXXXXXX'; try { $payment = \PayPal\Api\Payment::get($paymentId, $apiContext); } catch (Exception $ex) { exit(1); } $details = $payment->getDetails(); $state = $details->getState(); if ($state == 'approved') { //支付完成 } else { //支付失敗 }以上代碼會查詢支付詳細信息,并獲取支付狀態。如果支付成功,狀態應該是approved。 總體來說,PayPal的API為php開發人員提供了一種方便和安全的支付方式。開發人員需查詢最新文檔,深度研究相關支付指南,并在代碼實現中遵循最佳實踐,保證程序的穩定性和安全性。
下一篇pay php