2013-10-02 1 views
0

나는 그것에 대해 100 회의 토론을 읽었으며 아무도 지금까지 도움이되지 못했습니다.Paypal IPN은 항상 "INVALID"입니다 - charset 관련?

나는 Sandbox를 사용하고 있고 많은 머리를 긁어 낸 후에 Sandbox 프로필의 문자 인코딩 설정이 실제로 아무 것도하지 않는다는 것을 알아 냈습니다. (이는 정말 바보 같아요.) 그것을 할 또 다른 방법을 찾고. 이 상황에서 문자 인코딩이 어떻게 처리되는지에 대한 이해가 제한되어 있으므로 방탄 코드 샘플 및/또는 설명이 도움이 될 것입니다.

IPN 요청을 수신하고 charset 매개 변수는 windows-1252이며 내 사이트의 헤더에 설정된 charset은 UTF8입니다. 나는 cURL 요청에 Sandbox URL을 사용하는 것을 제외하고는 변경없이 Paypal이 제공하는 샘플 스크립트 (https://developer.paypal.com/webapps/developer/docs/classic/ipn/ht_ipn/)를 사용하고 있으며 항상 유효하지 않습니다.

Paypals 워드 프로세서는 쓸모가 없으며 Google을 통해 찾은 것 외에는 전혀 도움이되지 않았기 때문에 누군가가 왜 넘어지고 있는지 말해 줄 수 있습니까?

+0

문제에 대해 자세히 설명해 주시겠습니까? 당신이 할 수없는 일은 무엇입니까? 카트를 제출 하시겠습니까? – brazorf

+0

아니 그냥 "지금 구입"버튼, 하나의 항목입니다. 샘플 코드 나 문서에서 언급되지 않은 https://ppmts.custhelp.com/app/answers/detail/a_id/926/ <-이 페이지 덕분에 문제가 해결되었습니다. 그 페이팔 주셔서 감사. –

+0

벤, 같은 문제가 있습니다. 질문에 답변하고 전체 코드를 게시 해 주시겠습니까? 감사 – Asenar

답변

0

PHP를 사용하는 경우 rawurlencoderawurldecode과 반대로 urldecodeurlencode 함수를 사용하는 것이 문제입니다. 요청에서 날짜 값을 제거하면 (예 : null로 설정), 여기에 시간대 식별자 (예 : +0100 GMT)가 있기 때문에 정상적으로 작동합니다. 기본 urldecodeurlencode 기능을 사용하면 + 기호가 공백으로 해석되므로 확인을 위해 약간 변경된 요청이 전송되어 결과가 INVALID로 반환됩니다.

자세한 내용은 here.