이 글은 주로 PHP Alipay 온라인 결제 인터페이스 개발 튜토리얼을 자세히 소개하며, 관심 있는 친구들은 이를 참고할 수 있습니다.
1. 제3자 결제란 무엇입니까
이는 주요 은행과 계약을 체결하고 확실한 강점과 신뢰성을 보장하는 일부 제3자 독립 기관이 제공하는 거래 지원 플랫폼입니다. 제3자 결제 플랫폼을 통한 거래에서 구매자는 상품을 구매한 후 제3자 플랫폼에서 제공하는 계정을 사용하여 상품 대금을 결제하고, 제3자는 판매자에게 상품 도착을 통보합니다.
현재 제3자 결제를 제공하는 기관에는 Alipay, Tenpay, Kuaiqian, 온라인 뱅킹, Yibao Pay, Yunwang 및 기타 주요 결제 플랫폼이 있습니다. 웹사이트에서 제3자 결제를 구현해야 하는 경우 먼저 제3자 결제 플랫폼에 계정을 신청하고 계약을 체결해야 하며, 계약이 발효된 후 제3자 결제 플랫폼에서 이에 대한 온라인 결제 기능을 개설해야 합니다. 프로그램을 통해 인터페이스를 웹사이트에 통합합니다.
왜 제3자 결제를 사용하나요? 제3자 결제 플랫폼이 주요 은행과 계약을 체결했기 때문에 웹사이트 소유자는 거의 모든 유형의 은행 카드 및 신용 카드 거래를 지원하기 위해 이 플랫폼에 계정을 신청하기만 하면 됩니다.
2. 제3자 결제 원칙
위에서는 결제 과정에 대해 간략하게 설명했습니다. 물론 일부 단계(장바구니, 주문 등)는 생략되었습니다. 프로세스.
2.1 사용자가 쇼핑몰 웹사이트에 주문 확인 요청을 시작합니다
2.2 쇼핑몰 웹사이트가 요청을 받고 주문 데이터를 데이터베이스 또는 기타 저장 매체에 저장합니다
2.3 주문 확인 페이지로 돌아갑니다. 주문 금액 및 기타 정보 표시
2.4 사용자 확인 결제, 결제 요청을 시작합니다. 참고: 결제 요청은 쇼핑몰 웹사이트가 아닌 결제 게이트웨이(Alipay, 온라인 뱅킹 등)로 전송됩니다.
2.5 결제 페이지 표시
2.6 사용자가 인증 정보(계정 비밀번호 등)를 입력하고 제출합니다.
2.7 여기서는 결제 결과 페이지(사용자에게 표시됨)로 이동하는 두 단계가 있습니다. ) 차감이 성공한 후, 통지서를 지불하는 경우, 이 두 단계는 순서 없이 동시에 실행될 수 있습니다. 지불 통지서를 받은 후, 쇼핑몰 웹사이트는 확인 규칙에 따라 정보의 유효성을 확인합니다. 해당 변경을 수행합니다(예: 주문이 유효한 경우 결제 상태로 변경되고, 유효하지 않은 경우 기록이 불법이 됩니다. 정보 요청).
Alipay를 예로 들어 보겠습니다. Alipay 인터페이스를 웹사이트에 통합하려면 먼저 Alipay 계정이 있어야 하며 Alipay에 온라인 결제 사업을 신청하고 계약을 체결해야 합니다. 계약이 발효되면 Alipay는 웹사이트에 파트너 ID와 보안 확인 코드를 제공합니다. 이 두 가지를 통해 Alipay 인터페이스 문서에 따라 Alipay 인터페이스를 개발할 수 있습니다. 각 단계는 4개와 7개뿐입니다. 단계에는 쇼핑몰과 결제 게이트웨이 간의 정보 교환이 포함됩니다. 4단계에서는 결제 게이트웨이(Alipay)로 데이터를 보내는 것을 의미합니다. 7단계에서는 확인 게이트웨이가 웹사이트의 특정 주소를 요청하여 확인 규칙에 따라 정보를 확인합니다. 우리는 거의 모든 결제를 개발하고 있습니다. 인터페이스에 관해서는 이 두 부분의 개발에 중점을 두고 있습니다. 결제 인터페이스의 원리를 이해한다면 결제 인터페이스를 개발하는 것은 어렵지 않을 것입니다.
3.Alipay 인터페이스 개발
3.1 인터페이스 소개 및 테스트
Alipay는 현재 보장된 거래, 표준 즉시 결제, 이중 기능 등 여러 인터페이스를 제공하지만 기능 및 웹사이트 통합에 약간의 차이가 있습니다. 방법은 동일합니다. 표준 인스턴트 계정 인터페이스를 예로 들면, Alipay와 계약을 체결한 후 통합을 완료하려면 몇 가지 단계를 거쳐야 합니다.
다음 "셀프 서비스 통합을 원합니다" 링크를 선택하고 클릭하여 기술 문서를 다운로드하세요.
다운로드한 파일에는 표준 Alipay 거래 서비스 인터페이스, 판매자 도구, 인터페이스 통합 가이드 및 기타 인터페이스 문서뿐만 아니라 여러 언어로 작성된 데모가 포함되어 있습니다. 인터페이스 문서의 규칙에 따라 새로운 것을 개발하거나 구축할 수 있습니다. 데모를 기반으로 위의 수정 사항은 웹사이트에 통합되었습니다. 전체 디버깅 프로세스를 완료하려면 결제 인터페이스 개발이 공용 네트워크(외부 네트워크를 통해 서버에 액세스할 수 있어야 함)에서 이루어져야 한다는 점에 유의해야 합니다. . 외부 네트워크에서 서버에 접속할 수 없는 경우 결제 알림을 받을 수 없습니다.
데모에서 각 파일의 기능을 살펴보세요.
여기에 다운로드되었습니다(리소스 디렉토리의 pay 폴더 참조). 디버깅을 용이하게 하기 위해 여러 파일이 추가 및 수정되었습니다. 주문 정보를 저장하기 위해 데이터 테이블이 추가되었으므로 구성 파일을 수정하여 테스트 프로세스를 완료합니다.
alipay_config.php는 기본 정보 구성 파일입니다. Alipay 백엔드에서 얻은 PID와 키를 구성 파일에 작성해야 합니다.
구성 항목:
박스 안의 데이터는 우리가 집중적으로 수정해야 할 데이터입니다. 결제 알림 주소와 반품 주소의 차이점은 이전에 언급한 바와 같습니다. 7단계에는 결제 결과 페이지와 결제 알림 정보가 있으며, 사용자가 결제를 완료하면 결제 결과 페이지가 자동으로 이 주소로 이동합니다. . 반품 주소($return_url)는 다음과 같습니다.
결제 알림 주소도 동일합니다. 사용자가 결제를 완료한 후 Alipay에서 해당 주소($notify_url)를 요청하지만 결제 알림은 Alipay 서버에서 직접 요청하므로 사용자에게 표시되지 않습니다. . 이 두 주소는 http로 시작하는 전체 경로 형식이어야 합니다. 테스트 프로세스를 완료하려면 /pay/alipay/notify_url.php를 여기에 다시 작성하고 $notify_url을 이 파일에 액세스할 수 있는 URL로 설정합니다. 이러한 항목을 구성한 후에는 데이터베이스 스크립트(pay/orders.sql)에 따라 데이터 테이블이 생성됩니다. 그리고 데이터베이스의 구성 정보에 따라 mysql_config.php를 수정하면 Alipay에서 제공하는 데모만 수정하면 결제 요청 생성(4단계)이 완료됩니다. 여기서 결제 홈페이지 및 기타 페이지가 변경됩니다. 소스 코드 패키지의 급여 디렉토리). 먼저 테스트해 보겠습니다.
"주문 정보"가 데이터베이스에 추가되었습니다.
"결제 확인" 버튼을 클릭하거나 결제 확인 링크를 클릭하면 Alipay 페이지로 이동합니다. 버튼을 누르면 정보가 POST 형식으로 전송됩니다. 결제 게이트웨이에 제출됩니다. 결제 요청 데이터는 사용자가 볼 필요가 없으므로 숨겨진 필드에 기록됩니다. 결제 확인 링크는 URL을 통해 전달됩니다. Alipay 인터페이스는 POST 또는 GET 제출을 허용하므로 두 가지 방법 모두 허용됩니다. 매개변수를 결제 게이트웨이에 제출한 후 페이지가 결제 페이지로 이동합니다. 아래 사진을 참조하세요.
Alipay는 두 가지 결제 방법을 제공합니다. 하나는 Alipay 계정을 통해 결제하는 것이고, 다른 하나는 은행 카드를 통해 결제하는 것입니다. 예를 들어 은행 카드로 결제하기로 선택한 경우 이메일이나 휴대폰 번호를 입력하면 다음 페이지로 이동합니다.
결제 Alipay는 신용 카드 및 지점은 물론 거의 모든 은행 카드 결제를 지원합니다. 결제 방법을 선택하고 다음을 클릭하세요. 결제를 요청하시면 됩니다. 결제가 완료되면 구성 파일에 구성한 $return_url 주소로 페이지가 돌아가고 "주문 상태"도 변경됩니다.
참고: 테스트 중 외부 네트워크 테스트가 없는 경우(즉, 외부 네트워크에서 결제 알림 주소에 접근할 수 없는 경우) 결제 알림을 요청할 수 없으며 주문 상태가 자동으로 수정될 수 없습니다.
3.2 Alipay 인터페이스 사양 및 코드 분석
Alipay 인터페이스 사양은 /pay/doc/Standard Alipay Transaction Service 인터페이스(피싱 방지 웹사이트 전용)를 참조하세요. 이미 비교적 자세한 지침이 포함되어 있는 PDF입니다.
3.2.1 결제 요청 생성 방법
이전 테스트에서는 "결제 확인"을 클릭하여 Alipay의 결제 게이트웨이에 정보를 제출해야 하는지 생각해 볼 수 있습니다. 요청 매개변수 목록은 표준 Alipay 거래 서비스 인터페이스(피싱 방지 웹사이트 전용)를 참조하세요. 3.2.2 PDF의 이러한 매개변수를 그대로 Alipay에 제출할 필요는 없습니다. 데이터 보안을 보장하기 위해 Alipay는 현재 데이터 변조를 방지하기 위해 MD5 서명을 사용합니다.
데이터를 제출하기 전에 제출할 데이터를 특정 규칙에 따라 문자열로 조합하고(인터페이스 문서 참조) 보안 검사 코드(Key)를 추가하여 새 문자열을 구성한 다음 32바이트를 생성해야 합니다. MD5를 통한 서명. 지불 요청을 제출할 때 이 서명도 제출해야 합니다. 양식 소스 코드를 살펴보세요
Alipay는 매개변수를 수신한 후 요청 매개변수의 적법성을 확인합니다. 확인 후 결제 페이지가 표시됩니다. 그렇지 않으면 오류 메시지가 표시됩니다.
3.2.2 결제 알림 확인 방법
사용자의 결제가 완료된 후 Alipay는 웹사이트의 결제 알림 주소를 요청합니다. (이 주소는 결제 요청 생성 시 매개변수로 전달되어야 합니다.) 반품 매개변수 목록은 표준 Alipay 거래 서비스 인터페이스(피싱 방지 웹사이트 전용)를 참조하세요. Pdf3.3.1. Alipay의 반환 데이터에도 서명 문자열이 있습니다(결제 요청과 동일한 서명 방법 사용). 결제 알림 파일에는 먼저 데이터에 서명하고 확인해야 합니다. 서명을 확인하는 것 외에도 알림의 진위를 확인하고 알림 확인을 위해 매개변수의 inform_id도 Alipay의 확인 게이트웨이 Alipay 시스템에 제출되어야 합니다. Alipay 시스템은 알림이 문자열 형식으로 전송되었는지 여부를 자체적으로 확인하며, 그렇지 않으면 서버에서 반환된 데이터를 확인하여 요청의 진위 여부를 확인합니다. 주문 데이터를 변경하고 알림 및 기타 작업을 이메일로 보낼 수 있습니다. 서명 확인과 관련하여 알림 파일의 소스 코드를 살펴볼 수 있습니다. 데모에서는 POST를 통해 매개변수의 inform_id가 Alipay에 제출되고 반환 데이터가 획득됩니다. 코드 조각:
여기서 초점은 이메일을 보낼 때 이미 다루었습니다. 이전에 학습한 fopen 함수와 유사한 소켓 연결은 파일 함수(fgets(), fgetss(), fputs(), fclose(), feof()를 사용하여 작동할 수 있는 파일 핸들을 반환합니다. 등) fputs()(fwrite()와 동일) 함수는 코드에서 POST 모드에서 데이터 양식 제출을 시뮬레이션하는 데 사용됩니다. 마지막으로 반환된 데이터는 fgets() 함수를 통해 얻습니다. 최종적으로 검증이 수행됩니다. 자세한 내용은 소스 코드를 참조하십시오.
요약: 위 내용이 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
관련 권장 사항:
PHP에서 구현된 사용자 정의 배열 정렬 함수 및 정렬 클래스 방법
PHP에서 구현된 사용자 정의 배열 정렬 함수 및 정렬 클래스 방법
위 내용은 Alipay 온라인 결제 인터페이스 개발의 PHP 구현에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!