2014-04-06 3 views
0

나는 VIP 구매 버튼을 원합니다. (PP에서 생성 된) 텍스트 상자 (이 코드는 풀리지 않습니다. 페이팔은 튜토리얼에서 어떤 것을 제공합니까?) :즉석 지불 통지

........... 
    // STEP 3: Inspect IPN validation result and act accordingly 

    if (strcmp ($res, "VERIFIED") == 0) { 
     // The IPN is verified, process it: 
     // check whether the payment_status is Completed 
     // check that txn_id has not been previously processed 
     // check that receiver_email is your Primary PayPal email 
     // check that payment_amount/payment_currency are correct 
     // process the notification 

     // assign posted variables to local variables 
     $item_name = $_POST['item_name']; 
     $item_number = $_POST['item_number']; 
     $payment_status = $_POST['payment_status']; 
     $payment_amount = $_POST['mc_gross']; 
     $payment_currency = $_POST['mc_currency']; 
     $txn_id = $_POST['txn_id']; 
     $receiver_email = $_POST['receiver_email']; 
     $payer_email = $_POST['payer_email']; 
     $player_indentificator = $_POST["player_id"]; 
     mail("[email protected]", "TEST", $player_indentificator) 

     // IPN message values depend upon the type of notification sent. 
     // To loop through the &_POST array and print the NV pairs to the screen: 
     foreach($_POST as $key => $value) { 
      echo $key." = ". $value."<br>"; 
     } 
    } else if (strcmp ($res, "INVALID") == 0) { 
     // IPN invalid, log for manual investigation 
     echo "The response from IPN was: <b>" .$res ."</b>"; 
    } 
    ?> 

하지만 지불 할 때 그 이메일을받지 못합니다. 왜? 아마도 뭔가 잘못하고 어쩌면 잘못하고있는 것 같습니다.

+0

코드에서 'mail()'행을 실행합니까? 오류가 있습니까? 그들을 확인합니까? 충분한 정보를 제공하지 않았습니다. – EJP

+1

그건 보안 위반이 아닙니다. IPN은 PayPal로 다시 전화를 걸어 실제로 데이터를 확인합니다. 귀하의 코드 로직은 누군가가 충돌 할 수있는 미확인 IPN을 쉽게 버리거나 기록 할 수 있습니다. 나는 일반적으로 문제가있을 때 IPN URL을 사람들에게 물어 본다. 그래서 나 자신을 치고 내가 얻은 결과를 볼 수있다. 문제를 해결하는 데 도움이됩니다. –

+0

@EJP IPN URL을 알면 보안 문제가 무엇인지 알려주실 수 있습니까? – Vimalnath

답변

0

1) 작업중인 계정에서 IPN이 활성화되어 있는지 확인해야합니다. 샌드 박스에서 작업하는 경우 IPN이 해당 계정 프로필에서 활성화되어 있고 사용하려는 IPN URL을 가리키는 지 확인해야합니다. 라이브 계정으로 작업하는 경우 해당 라이브 계정에서 동일한 작업을 수행합니다. 나는 한 곳에서 설정 한 사람들을 종종 만난다. 그러나 다른 곳으로 돈을 내고있다. 그것이 여기에 해당하지 않는지 확인하십시오.

2) HTML 버튼의 notify_url 매개 변수 또는 API 요청의 NotifyURL 매개 변수를 사용하여 프로필을 재정의 할 수 있습니다. 이러한 방법 중 하나를 사용하고 있습니까? 그렇다면 올바른 URL을 치고 있는지 확인하기 위해 URL 값을 다시 확인하십시오.

3) 위의 내용을 확인한 경우 함께 일하는 PayPal 계정의 IPN 기록을 확인해야합니다. 트랜잭션이 발생할 때 IPN을 보내는 지 아닌지를 보여주고, IPN을 게시 할 때 서버에서 가져온 결과 코드도 표시합니다.

IPN 기록에 로그가 표시되지 않으면 몇 가지 이유로 간단히 전송하도록 구성되지 않았기 때문에 위에서 언급 한 내용을 다시 확인해야합니다.

거기에 로그가 있지만 결과가 200이 아닌 것으로 나타나면 해결해야 할 IPN 스크립트에 문제가 있음을 의미합니다. 구문 오류 또는 뭔가 어리석은 수 있습니다. 웹 서버 로그를 보면 오류를 확인할 수 있습니다.

내가하고 싶은 또 다른 일은 IPN에서 얻을 것으로 기대되는 것을 나타내는 숨겨진 필드를 가진 간단한 HTML 양식을 만드는 것입니다. 양식의 작업을 IPN URL로 설정 한 다음 브라우저에서이 양식을로드하고 제출하여 화면에 결과를 표시 할 수 있습니다. 이렇게하면 문제를 찾고 해결할 수있는 능력이 크게 향상됩니다. 예상대로 모든 작업을 완료하면 실제 IPN이 전송 될 때와 동일한 방식으로 작동합니다.

테스트 할 때 데이터가 PayPal에서 오지 않으므로 확인하지 않습니다. 그에 따라 코드 로직을 설정해야합니다. 확인되지 않은 IPN을 기록하고 확인되지 않았기 때문에 거래를 조사해야하는 이메일을 보내고 싶습니다.