prosource

Paypal IPN은 항상 "paypal_status:샌드박스 보류 중?

probook 2023. 7. 27. 22:05
반응형

Paypal IPN은 항상 "paypal_status:샌드박스 보류 중?

저는 제 웹사이트에서 페이팔을 구현하려고 합니다.

이 클래스를 사용합니다. http://www.micahcarrick.com/php-paypal-ipn-integration-class.html

현재 저는 페이팔 샌드박스를 사용하여 테스트 중입니다.

문제는 다음과 같습니다.

  1. 사용자가 결제 - OK
  2. 사용자가 내 웹 사이트로 성공적으로 돌아갑니다 - 확인
  3. 몇 초 후 PayPal은 IPN을 사용하여 내 웹 사이트에 전화를 건다 - OK
  4. 클래스에서 수신 IPN 데이터를 성공적으로 검증했습니다.
  5. PayPal에서 "paypal_status:보류 중"

페이팔 IPN에서 결제 상태가 "보류"인 상태로 다시 전화하는 이유를 모르겠습니다.

내가 뭘 잘못하고 있는지 아는 사람?

테스트 비즈니스 계정에 로그인한 경우 수동으로 다음으로 이동합니다.

https://www.sandbox.paypal.com/businessmanage/preferences/payments

일반적으로 "내 비즈니스 설정"을 통해 액세스할 수 있지만 현재는 (샌드박스에 있음에도 불구하고) PayPal Live로 리디렉션됩니다.

해당 페이지가 나타나면 "내가 보유하지 않은 통화로 내게 보낸 지불 차단"을 "아니오, 수락하고 변환..."로 변경합니다.

또한 API의 PayPal Sandbox 프런트엔드 및 "Test Email" 섹션을 사용하여 비즈니스 계정을 확인하는 것을 잊지 마십시오.

제 문제는 제 샌드박스 머천트 계정이 영국 사용자(및 통화로 GBP)로 만들어졌다는 것입니다.제가 덴마크 크로네(DKK)로 주문을 처리하려고 하면 구매가 상인 보기에 "청구되지 않음"으로 표시됩니다.DKK에서 하나의 주문이 접수되고 DKK에서 새로운 통화를 만들기로 결정하자마자 IPN에서 "payment_status = completed" 메시지가 모두 전송되었습니다.

이 문제를 조금 & PayPal에서 UI를 변경한 후,

다음은 PayPal Merchant 기술 지원부의 정확한 지침입니다.

머천트 기술 지원부에 연락해 주셔서 감사합니다.

아래 지침에 따라 샌드박스 계정에 대한 지불 검토 기능을 해제하십시오.

  • PayPal 개발자 웹 사이트로 이동합니다.
  • 개발자 계정에 로그인합니다.
  • 응용 프로그램 클릭
  • 샌드박스 계정 클릭
  • 지불 검토 옵션을 해제할 전자 메일 주소를 클릭하고 프로파일을 확장한 후 클릭합니다.
  • 설정 클릭
  • 그리고 지불 검토에 대해 Off를 선택합니다.
  • 닫기 클릭

PayPal SandBox 머천트 계정에서 이 작업을 수행하고 있는지 확인하십시오!

그것은 다음과 같습니다.

enter image description here

다음 지침에 따라 해결할 수 있습니다.

  1. Developer Central에 로그인합니다.

  2. 왼쪽에 있는 Test Accounts 탭을 클릭합니다.샌드박스에서 테스트할 수 있도록 이러한 테스트 계정을 생성했어야 합니다.

  3. '지급 검토' 열을 찾습니다.

  4. 사용 중인 샌드박스 계정을 찾아 '결제 검토' 열에서 '사용 가능'을 클릭합니다.

  5. 이것은 "비활성화"로 변경되어야 하며 이제 잔액과 신용카드로 자금이 지원되는 결제가 즉시 완료됩니다.

두 가지 가능한 이유:

판매자 계정에 지불을 수락하거나 거절할 수 있는 옵션이 있습니다.

이 경우 판매자로 로그인하고 결제를 수락해야 합니다. 그러면 payment_status=Discovery를 가진 다른 IPN을 받게 됩니다.

단계:

  1. Developer Central에 로그인합니다.
  2. 왼쪽에 있는 "테스트 계정"을 누릅니다.
  3. 판매자 계정을 선택하고 하단의 "샌드박스 테스트 사이트 입력"을 누릅니다.
  4. 지불을 수락하거나 거절할 수 있는 옵션이 있는 셀러 대시보드가 표시됩니다(이 단계에서 셀러 테스트 계정 자격 증명을 사용하여 다시 로그인해야 할 수 있음).

지급 검토가 활성화되었습니다.

솔루션:

  1. Developer Central에 로그인합니다.
  2. 왼쪽에 있는 Test Accounts 탭을 클릭합니다.샌드박스에서 테스트할 수 있도록 이러한 테스트 계정을 생성했어야 합니다.
  3. '지급 검토' 열을 찾습니다.
  4. 사용 중인 샌드박스 계정을 찾아 '결제 검토' 열에서 '사용 가능'을 클릭합니다.

이것은 "비활성화"로 변경되어야 하며 이제 잔액과 신용카드로 자금이 지원되는 결제가 즉시 완료됩니다.

  1. 는 변했어요 Allow payments sent to me in a currency I do not holdYes샌드박스의 모든 사용자 계정에 있지만 여전히 작동하지 않습니다.

  2. 저는 또한 페이팔 형태와 여기 샌드박스 사용자 계정에 대해 동일한 통화를 생성하려고 노력했습니다. 새로운 통화를 기본 통화로 만듭니다.돈을 새 화폐로 바꾸는 것.아직 성공하지 못했습니다.

  3. 그 때 저는 Wes Hanny의 대답의 마지막 문장인 "PayPal Sandbox 프론트엔드를 사용하여 비즈니스 계정 확인"을 주목했습니다.이것을 시도하는 도 효과가 없었습니다.

  4. M.G. 팔머는 답변에서 독일 상인 계정을 만들자고 제안했습니다.작동하지도 않았습니다.


정말 번거롭군요!

한 시간 후, PC를 창밖으로 던질 뻔했던 곳에서, 저는 한 가지를 잊어버렸다는 것을 깨달았습니다.페이팔 양식의 실제 수신자 이메일 주소를 샌드박스 머천트 이메일 주소로 변경하는 중입니다.그것이 마침내 저에게 해결되었습니다.


PS: 멍청한 초보자의 실수일까요?하지만 같은 상황에 처한 다른 사람들에게는 도움이 될 수 있습니다.

저도 같은 문제가 있었고, 여기서 제안된 것들 중 어떤 것도 효과가 없었습니다.그때 저는 샌드박스 계정에서 라이브 계정으로 결제를 하려고 하는 것이 문제라는 것을 깨달았습니다.를 들어 이 다음과 같은입니다.email@example.com모든 샌드박스 지불은 다음과 같이 이루어져야 합니다.email-facilitator@example.com그렇지 않으면 보류 모드가 됩니다.

위의 어떤 해결책도 저에게 효과가 없었지만, 해결책을 찾는 데 도움이 되었습니다.

기본 비즈니스 및 구매자 계정을 사용하는 경우 이 솔루션이 도움이 될 수 있습니다.

  1. developer.paypal > sandbox.accounts이동합니다.
    https://.paypal.com/developer/accounts/https://developer.paypal.com/developer/accounts/

  2. 로그인한 후 sandobx 비즈니스 계정 및 구매자 계정에서 클론 아이콘클릭합니다.

  3. 이름 및 전자 메일을 설정하고 새 계정 만들기를 클릭합니다.

  4. 두 계정의 프로필을 열고 지불 검토가 OFF인지 확인합니다.

  5. 코드/앱에서 대상 계정을 편집하고 새 비즈니스 계정을 배치합니다.

  6. 새 구매자 계정을 사용하여 거래 반복


이 해결책이 제 문제를 해결한 것만은 아닙니다.덕분에 sandox.paypal 디자인은 실제 계정을 사용하는 새로운 디자인으로 변경되었습니다.

이 경우 IPN에서 수신한 데이터 중 일부는 다른 이름으로 응답할 수 있기 때문에 중요합니다.

여기서 비슷한 문제가 발생했습니다. 제 (샌드박스) 머천트 계정은 미국에서와 마찬가지로 만들어졌고, 저는 EUR 결제를 하려고 했습니다.

저는 어떤 설정을 바꾸든 상관없었고, 독일에 기반을 둔 새로운 머천트 계정을 만든 후에야 작동했습니다.

기본적으로 PayPal 비즈니스 계정은 사용자의 지역 설정에 따라 선택된 몇 가지 승인된 통화로 제한됩니다.승인되지 않은 통화로 결제된 금액은 보류/열림 상태로 유지됩니다.이러한 통화를 지원/승인하려면 PayPal의 "승인 통화" 목록에 해당 통화를 추가해야 합니다.이렇게 하려면 다음 단계를 수행합니다.

  1. PayPal 비즈니스 계정으로 PayPal에 로그인합니다.
  2. "프로파일" > "프로파일 및 설정" > "마이머니" > "통화"로 이동
  3. 지원할 통화를 추가합니다.

비고: 테스트 시 샌드박스 계정을 사용할 경우 URL: https://www.sandbox.paypal.com/ 을 사용하여 이 계정에 로그인한 후 퍼실리테이터 샌드박스 계정에 대해서도 이 작업을 수행해야 합니다.

@Jadeye는 다음과 같이 설명합니다.

PayPal 개발자 웹 사이트로 이동합니다.

  1. 개발자 계정(샌드박스)에 로그인합니다.
  2. 응용 프로그램 클릭
  3. 샌드박스 계정 클릭
  4. 지불 검토 옵션을 해제할 전자 메일 주소를 클릭하고 프로파일을 확장한 후 클릭합니다.
  5. 설정 클릭
  6. 그리고 지불 검토에 대해 Off를 선택합니다.
  7. 닫기 클릭

한 가지 더 확인해야 할 사항이 있습니다.

PayPal 계정의 언어 인코딩이 UTF-8로 설정되어 있는지 확인하십시오. 일부 상황에서는 기본적으로 'Windows-1256'과 같은 것으로 설정되어 있습니다.UTF-8로 변경하려면 다음 작업을 수행해야 합니다.

  • 프로필로 이동한 다음 "내 판매 도구"
  • 아래쪽에서 "PayPal 버튼 언어 인코딩"을 클릭합니다.
  • 다음 페이지에서 "추가 옵션"을 클릭하여 인코딩을 설정해야 합니다.

제가 독일에서 설정한 페이팔 계정은 모두 언어 인코딩 "windows..결석으로그러면 IPN은 UTF-8로 인코딩된 웹 사이트에서 작동하지 않습니다. 심지어 Woocommerce, ED 또는 이벤트 에스프레소에서도 작동하지 않습니다.

나는 모든 샌드박스 계정을 삭제하여 내 것을 해결하고 다시 만들었습니다.

중요 참고:

계정이 코드와 동일한 통화를 사용하고 있는지 확인합니다.

저의 경우, 페이팔의 자격 증명 탭에서 자격 증명을 복사하는 것이 "xxxx_api1.example.com "을 제공하는 것이 문제였습니다."사용자 이름", "계정 ID" 필드에 이것을 입력하면 작동하지 않습니다.이메일을 입력해야 합니다.잘 보세요, 이메일에는 @가 들어 있습니다.따라서 사용자 이름과 계정 ID 필드에 "xxxx@.example.com "을 모두 입력해야 합니다.나는 이것이 나와 함께 작동했기 때문에 당신과 함께 작동하기를 바랍니다.또한 설정에서 Payment Review를 비활성화했습니다.

언급URL : https://stackoverflow.com/questions/4298117/paypal-ipn-always-return-payment-status-pending-on-sandbox

반응형