대부분의 판매자는 PayPal 즉시 지불 통지 (IPN)를 사용하여 운송 주소를 포함한 지불 세부 사항을 수신합니다. 이렇게하면 결제가 이루어진 것으로 판단되면 Google에 핑을 보내는 대신 PayPal에서 실시간 알림을받을 수 있습니다. 다음은 IPN을 취하여 유효성을 검사하여 스푸핑 시도가 아니 었는지 확인하는 간단한 PHP 스크립트입니다. 일단 유효성을 확인하면 데이터베이스를 업데이트하거나 이메일을 보내거나 지불이 완료된 후에 필요한 모든 작업을 수행 할 수 있습니다. 그것을 만들 수 지불 귀하의 사이트로 돌아갑니다 소비자에 의존하지 않는
// 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)보다 훨씬 더 신뢰할 수있다.
배송비를 결정할 수 있도록 최종 실행 전에 배송지 주소가 필요하다는 것을 추가해야한다고 생각합니다. 그 과정에서 IPN이 너무 늦을 때까지 기다리는 것 같습니다. – user2183614
익스프레스 체크 아웃을 사용하는 경우 콜백 API를 사용하는 것이 좋습니다. 고객이 PayPal로 이동하여 배송 주소를 제공하면 배송 주소, 금액 및 품목 세부 정보가있는 서버를 ping 한 다음 배송 옵션 및 금액으로 회신합니다. 자세한 내용은 https://www.x.com/developers/paypal/documentation-tools/api/callback-api-operation-nvp –
에서 확인할 수 있습니다. 나는 주요한 문제는 새로운 개발자 사이트가 여전히 필요하다고 생각되는 다른 API를 경시하고 모든 것의 차이점에 대한 문서를 찾을 수 없다는 점이다. 희망 페이팔 팀은 그 모든 엉망 청소. – user2183614