이 기사에서는 PHP를 사용한 Alipay 개발에서 return_url과 inform_url의 차이점을 분석합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
Alipay 처리 업무에서 return_url과 inform_url은 어떤 상태로 반환되나요? 이를 기반으로 처리를 하려면 return_url과 inform_url의 차이점을 이해해야 합니다.
문제 설명:
Alipay 업무를 처리할 때 이런 문제가 있었습니다. 결제가 완료된 후 Alipay가 가맹점 지정 페이지로 점프했을 때, 디버깅을 통해 Alipay가 inform_url을 먼저 완료한 것으로 나타났습니다. 주문현황
Alipay return_url 및 inform_url 알림 순서 문제:
주문이 반드시 확실하지는 않습니다. 주문만으로 판단하지 마세요. 구체적인 판단 방법은 현재 데이터베이스의 상태와 방금 Alipay에서 얻은 상태를 비교하여 처리 여부를 판단하는 것입니다.
Alipay return_url과 inform_url의 차이점에 대해 동기화 알림 페이지 기능(return_url 기능):
(1) 결제가 성공적으로 완료되면 구매자에게 거래 성공을 알리는 Alipay 페이지가 표시됩니다. 해당 페이지는 몇 초 동안 유지된 후 자동으로 판매자가 지정한 동기화 알림 페이지로 돌아갑니다( 매개변수 return_url)
(2) 이 페이지에서 매개변수를 얻으려면 request.QueryString("out_trade_no"), $_GET['out_trade_no']와 같은 GET 메소드를 사용해야 합니다.
(3) 이 방법은 구매자가 결제를 완료한 후에만 자동으로 점프하므로 한 번만 수행됩니다.
(4) 이 방법은 Alipay가 판매자 페이지를 적극적으로 호출하는 것이 아니라 Alipay의 프로그램이 페이지 자동 이동 기능을 사용하여 사용자의 현재 페이지로 자동 이동하는 것입니다.(5) (4)의 이유에 따라 디버깅은 서버에서만 수행되는 것이 아니라 로컬에서 수행될 수 있습니다.
(6) 반환 URL은 1분 동안만 유효합니다. 1분을 초과하면 링크 주소가 무효화되고 확인이 실패합니다.
(7) 페이지 점프 동기화 알림 페이지 경로(return_url) 설정 시 페이지 파일 뒤에 커스텀 매개변수를 추가하지 마세요. 예:
잘못 쓴 글:
서버 비동기 알림 페이지 기능(notify_url 기능):
(1) 서버의 비동기 알림 페이지(notify_url)에 공백, HTML 태그, 개발 시스템에서 발생하는 예외 프롬프트 등의 문자가 없는지 확인해야 합니다.(2) Alipay는 POST를 사용하여 알림 정보를 보내므로 이 페이지에서 다음과 같은 매개변수를 얻습니다.
request.Form("out_trade_no"), $_POST['out_trade_no'].
(3) 이 방법은 Alipay가 적극적으로 알림을 시작하는 경우에만 활성화됩니다.
(4) Alipay의 거래 관리에 거래가 존재하고 거래 상태가 변경된 경우에만 Alipay는 이 방법을 통해 서버 알림을 시작합니다. (직접 계정의 거래 상태는 "구매자 결제 대기 중" 상태이므로 알림을 보내지 않습니다. 기본적으로)
(5) 서버 간 상호 작용은 페이지에 표시될 수 있는 페이지 이동 동기화 알림과 달리 이 상호 작용 방법은 눈에 띄지 않습니다.
(6) 처음으로 거래 상태가 변경되면(즉시 결제의 경우 거래 상태가 거래 완료) 페이지 점프 동기 알림 페이지가 활성화될 뿐만 아니라, 서버 비동기 알림 페이지에서도 Alipay의 알림 처리 결과 알림
(7) 프로그램이 실행된 후에는 "success"가 인쇄되어야 합니다(따옴표 제외). 판매자가 Alipay에 피드백한 문자가 성공 7자가 아닌 경우 Alipay 서버는 24시간 22분을 초과할 때까지 계속해서 알림을 다시 보냅니다.
일반적인 상황에서는 25시간 이내에 8개의 알림이 완료됩니다(알림 간격 빈도는 일반적으로 2분, 10분, 10분, 1시간, 2시간, 6시간, 15시간입니다).
(8) 프로그램 실행이 완료된 후에는 페이지 점프를 할 수 없습니다. 페이지 점프가 실행되면 Alipay는 성공 문자를 받지 못하며 Alipay 서버는 해당 페이지의 프로그램 작동에 이상이 있다고 판단하여 처리 결과 알림을 다시 보냅니다.
(9) 이 페이지에서 쿠키, 세션 등이 무효화됩니다. 즉, 이러한 데이터를 얻을 수 없습니다.
(10) 이 메서드의 디버깅 및 작업은 서버, 즉 인터넷에서 액세스할 수 있어야 합니다.
(11) 이 방법의 주요 기능은 주문 손실을 방지하는 것입니다. 즉, 페이지 이동 동기화 알림은 주문 업데이트를 처리하지 않지만 처리합니다.
(12) 알림 ID(매개변수 inform_id)는 1분 동안만 유효하며, 1분을 초과하면 알림 확인에 실패합니다. 검증에 성공하면 다음 검증은 무효가 됩니다.
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.