我正在将Paypal集成到购物车中,我想在创建付款后获取用户的送货信息。我知道有一种方法可以使用旧的api来实现,但是当developer.paypal.com启动时,似乎api已经改变了。我没有看到我需要使用哪个网址才能获得更多的付款人信息。
到目前为止,我将用户发送给PayPal进行创建,当用户回来时,我有付款人ID和令牌。从上一次调用,我有一个执行链接,但没有详细信息链接。在联系PayPal之前,我是否需要强制用户输入送货信息?如果是这种情况,Paypal会显示来自他们系统而不是我的系统的运输信息,这似乎令人困惑。
如果他们批准了金额,我如何从paypal获得付款人的送货详情?
答案 0 :(得分:0)
大多数商家使用PayPal即时付款通知(IPN)来接收付款详细信息,包括送货地址。这使您可以从PayPal接收实时通知,而不是在您认为付款后立即通知我们。下面是一个简单的PHP脚本,它将获取IPN并对其进行验证,以确保它不是欺骗尝试。验证完成后,您可以在知道付款后更新数据库,发送电子邮件或任何需要的任务。
// Validate with curl
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value)
{
$value = urlencode(stripslashes($value));
$req .= "&" . $key . "=" . $value;
}
$curl_result=$curl_err='';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'www.paypal.com');//Change URL to sandbox.paypal.com if testing in our developer environment
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded", "Content-Length: " . strlen($req)));
curl_setopt($ch, CURLOPT_HEADER , 0);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$curl_result = @curl_exec($ch);
$curl_err = curl_error($ch);
curl_close($ch);
//Set validation flag
if (strpos($curl_result, "VERIFIED")!==false)
$valid = true;
else
$valid = false;
此方法比付款数据传输(PDT)更可靠,因为它不依赖于消费者返回您的网站进行付款。