페이팔 IPN 콜백에 문제가 있습니다. 샌드 박스 환경에서 Paypal의 IPN 콜백이 작동을 멈췄습니다.샌드 박스 환경에서 PayPal IPN 콜백이 작동하지 않습니다.
나는 지난 주 동안 내 고객의 웹 사이트를 테스트 해왔고 항상 올바르게 작동했습니다. - 지불이 이루어졌으며 콜백 IPN이 웹 사이트로 돌아가 지불을 확인하고 웹 사이트를 업데이트했습니다. 데이터 베이스.
내 코드에서 아무 것도 변경하지 않고 갑자기 작동을 멈췄습니다. 지불은 여전히 이루어지고 페이팔 계정에 저장되지만 IPN은 항상 다시 시도 중입니다 ... 완료되지 않습니다. 나는 그것이 이미했습니다
if(!($res = curl_exec($ch))) {
하기 전에 첫 번째 단계를 통과하고 두 번째에 중지 사실을 발견,
<?php
// STEP 1: read POST data
// Reading POSTed data directly from $_POST causes serialization issues with array data in the POST.
// Instead, read raw POST data from the input stream.
$raw_post_data = file_get_contents('php://input');
$raw_post_array = explode('&', $raw_post_data);
$myPost = array();
foreach ($raw_post_array as $keyval) {
$keyval = explode ('=', $keyval);
if (count($keyval) == 2)
$myPost[$keyval[0]] = urldecode($keyval[1]);
}
// read the IPN message sent from PayPal and prepend 'cmd=_notify-validate'
$req = 'cmd=_notify-validate';
if(function_exists('get_magic_quotes_gpc')) {
$get_magic_quotes_exists = true;
}
foreach ($myPost as $key => $value) {
if($get_magic_quotes_exists == true && get_magic_quotes_gpc() == 1) {
$value = urlencode(stripslashes($value));
} else {
$value = urlencode($value);
}
$req .= "&$key=$value";
}
// STEP 2: POST IPN data back to PayPal to validate
$ch = curl_init('https://www.sandbox.paypal.com/cgi-bin/webscr');
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));
// In wamp-like environments that do not come bundled with root authority certificates,
// please download 'cacert.pem' from [link removed] and set
// the directory path of the certificate as shown below:
// curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
if(!($res = curl_exec($ch))) {
// error_log("Got " . curl_error($ch) . " when processing IPN data");
curl_close($ch);
exit;
}
curl_close($ch);
……
?>
텍스트 파일로 일부 출력을 발사 : 여기
사용의 코드입니다 3 개의 도움말 요청을 PayPal에 제출했지만 여전히 답변을받지 못했습니다.
은 도움이 될 수 있습니다이 문서 https://developer.paypal.com/webapps/developer/docs/classic/ipn/gs_IPN/ –
안녕하세요 덴마크어, 당신의 응답을 주셔서 감사를 참조하십시오. 나는 그 스크립트를 이미 테스트했습니다. 내가 시험해 본 것 중 하나 였어. 그런 다음 스크립트로 변경했습니다. https://developer.paypal.com/webapps/developer/docs/classic/ipn/ht_ipn/ 이 스크립트는 완벽하게 작동했지만 갑자기 작동이 멈췄습니다. Thanx –
나는 테스트를 거쳤으며 Curl과 관련된 문제인 것처럼 보입니다.IPN이 방식으로 작동하도록되어 : 1 - 페이팔은 거래와 콜백을 전송하는 2 바르 - 그 바르 페이팔로 다시 전송되는 수신 파일에서 확인 3 - 페이팔은 수신 된 정보의 유효성을 검사 4 - 페이팔 "VERIFIED"또는 "INVALID"로 응답합니다. 콜백 파일에서받은 vars가 구문 분석되어 paypal로 올바르게 전송됩니다. URL을 복사하여 브라우저에 직접 제출하면 "VERIFIED"응답이 표시됩니다. 그러나 Curl을 통해 제출할 때 오류가 발생합니다 (호스트에 연결할 수 없음). 어떤 아이디어? Thanx –