我所做的就是編寫一個類,我稱之爲PaypalNvp,將文件命名爲PaypalNvp.class.php,並將其放在/ lib文件夾中,並放入Nvp Ops的函數中。
然後你可以選擇要麼靜態調用的函數(改變你的類的功能需要)或初始化類並調用函數...
因此,像:
PaypalNvp::doExpressCheckoutPaypment($token, $payer_id, $amount, $currency, $payment_action);
或
$paypal = new PaypalNvp();
$paypal->doExpressCheckoutPaypment($token, $payer_id, $amount, $currency, $payment_action);
我不認爲有一種說法哪種方式更好......我自己使用後一種方法。
我的班級中有一個輔助函數,它與PayPal最終通信操作:您需要記住
protected function api($data = array())
{
if (empty($data) || !is_array($data)) return false;
// INIT
$data = array_merge($data, array(
'VERSION' => $this->VERSION,
'PWD' => $this->PASSWORD,
'USER' => $this->USERNAME,
'SIGNATURE' => $this->SIGNATURE
));
array_walk($data, array(&$this, 'urlencode_walk'));
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $this->getUrl() . '/nvp',
CURLOPT_VERBOSE => 1,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => http_build_query($data)
));
$response = curl_exec($curl);
if (curl_errno($curl)) {
curl_close($curl);
return false;
} else {
curl_close($curl);
return $this->deformatNVP($response);
}
}
主要的事情是設置API方法,例如SetExpressCheckout以及根據PaypalNvp API的所有必填字段