2013-05-12 3 views
1

가이드 투어를 제공하는 사이트가 있습니다. 각 투어에는 참가할 사람들에 따라 가격이 있습니다.페이팔로 리디렉션하기 전에 양식 제출

사용자가 양식을 작성해야하며, 서버는 양식을 확인한 다음 예약 된 여행 세부 정보 (선호하는 일, 몇 명의 인원 등)와 함께 클라이언트와 에이전트 사무실에 이메일을 보냅니다. 그런 다음 페이팔로 사용자를 지불하십시오.

문제는 paypal에서 제공하는 Buy now 버튼이 자신의 양식에 일부 숨겨진 필드가 있으므로 두 페이지가 같은 페이지에 있다는 것입니다.

트리 솔루션을 찾았지만 무엇이 최선인지 알지 못합니다. 사용자 프레스가 제출 유효성 검사를 수행 이메일을 보낸 다음 뭔가 제시하는 가격에 함께 페이팔 양식을 제출하는 '지불로 진행'처럼라는 버튼이있는 페이지로 사용자를 리디렉션

  1. 숨겨진 필드

  2. 사용자가 제출 단추를 누르면 서버에서 ajax 호출이 양식의 유효성을 검사하고 전자 메일을 보낸 다음 성공하면 paypal 양식을 제출합니다.

  3. 사용자를 눌러 유효성 검사를 수행 제출 한 이메일을 보낸 다음 서버가 나는이 문제에 대한 최선의 해결책을 찾아 몇 시간을 읽고있다

페이팔 양식을 제출

. 무엇이 가장 안전하고 효율적이며 사용자에게 문제를 일으키지 않습니다. 대한

죄송합니다 제 영어

+0

PayPal 판매자 API를 가장 잘 읽는다면 더 간단해질 것입니다. –

답변

4

(양식, 세션 등에 대해 이야기하고 있으므로) 웹 개발에 대한 공정한 지식이 있다고 가정하면 PayPal Express Checkout API를 사용하는 것이 좋습니다. 당신이하려는 것은 매우 보편적입니다. 그리고 내가하는 방법은 다음과 같습니다.

  1. 사용자가 페이지 1의 양식에 둘러보기 정보를 입력하고 "제출"버튼을 클릭합니다.

  2. 서버가 전화를 받고 양식 유효성을 검사하고 PAYMENTACTION을 "Authorization"으로 설정하여 SetExpressCheckout을 호출합니다. 이것은 "호텔 방 예약"또는 "렌트카"와 같습니다. 이 순간에 사용자에게 지불 승인을 요청하는 것입니다. 아직 그에게 요금을 부과하지 않습니다.

  3. API가 사용자에게 토큰을 반환합니다. 둘러보기 정보와 함께이 토큰을 백엔드 데이터베이스에 저장합니다. 이 특정 "예약"을 "예약 요청 접수"라고 표시하십시오.

  4. 사용자를 paypal.com으로 리디렉션하고 URL에 해당 토큰을 전달하면 지불을 "승인"합니다.

  5. 사용자가 승인을 완료하면 paypal은 사용자를 웹 사이트로 리디렉션합니다 ('성공 페이지'또는 페이팔 용어로 '반환 URL').

  6. 데이터베이스 항목을 "지불 승인"상태로 업데이트하십시오. 이 시점에서 사용자와 에이전트에게 이메일을 보냅니다.

  7. 상담원이 유효성을 확인하고 둘러보기 등에서 사용 가능한 공간이 있는지 확인하고 사용자가 설정되었음을 알려줍니다.

  8. 이 시점에서 그 토큰을 사용하여 DoCapture API를 호출합니다. 이것은 실제로 지불을 "캡처"합니다. 그리고 데이터베이스 항목을 "지불 처리됨"상태로 갱신합니다. 지불 및 예약을 확인하는 다른 이메일을 사용자에게 보낼 수도 있습니다. 오프 드롭 (예를 들어 사용자가 완료되지 승인)이 있다면 어떤 단계에서

, 당신은 당신의 데이터베이스에서 알고있는 것, 당신은 사용자에게 후속 이메일을 보낼 수 있습니다. 또는 그가 승인했지만 나중에 특정 여행에 공간이 없다고 말하면 다음 사용 가능한 날짜에 대해 사용자에게 다시 연락하거나 지불을 취소 할 수 있습니다.

예, 이것은 더 많은 코딩 "...하지만 더 유연 해지면 잘 빠져 나올 수 있습니다.

희망이 도움이됩니다. 빠른 체크 아웃을위한 문서는 https://cms.paypal.com/cms_content/CA/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf입니다. 판매자가 신속하게 통합 할 수 있도록 Java, PHP 등 SDK를 사용할 수 있습니다.

+0

감사! 아주 솔리드 한 대답. 내 유일한 지불 옵션이 페이팔 일 것이기 때문에 당신이 설명한 논리에 따라 PayPal IPN으로 그것을하는 것이 더 낫다고 생각합니까? 그래서 일부 고객이 paypal 사이트를 통해 신용 카드로 지불 할 paypal 계좌를 갖고 있지 않으면 좋겠어요. – Laxmana

+0

예, IPN으로도이 작업을 수행 할 수 있습니다.하지만 아약스를 사용하여 예약 요청을 녹음해야한다고 언급 한 것처럼 조금 복잡 할 것입니다. 그러나 IPN 경로로 이동하려면 버튼의 PaymentAction을 Authorization으로 설정 한 다음 Paypal 계정에 로그인하거나 API를 사용하여 지불을 캡처 할 수 있습니다. 자세한 내용은 https://developer.paypal.com/을 참조하십시오. webapps/developer/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/ –

+0

+1에 좋은 +1 –

1

당신은 페이팔 양식의 모든 값을 확인 페이지의 종류하지만 과정을 깰 <input type="hidden" balal /> rather than <input type="text" balal />

시도를 사용하는 대신에 앉아 전체 트랜잭션을 갖는 만들 것 그 "지금 구매"버튼을 클릭하십시오. 아마도 귀하의 웹 사이트에 기본 장바구니 시스템을 생성 한 다음 사용자가 체크 아웃 할 수 있도록 허용 한 후 PayPal에 숨겨진 입력을 사용하여 장바구니의 내용을 보냅니다.

이렇게하면 사용자를 예약과 일치시킬 수 있습니다.

+0

아마 가장 좋은 해결책으로 프로세스가 무너질 것이라고 생각합니다. 사용자가 양식을 채우고 제출을 누른 다음 다른 페이지에서 사용자가 어떤 이유로 클릭을 진행하지 않으면 사용자가 제출 한 세부 정보가 포함 된 이메일이 에이전트 사무실에 전송됩니다. – Laxmana

+0

PayPal의 IPN 콜백 (return_url 필드를 사용하여 설정)을 사용하여 지불을 확인한 다음 데이터/이메일을 처리하는 것이 좋습니다. IPN 콜백은 지불이 완료된 후에 만 ​​전송됩니다. https://www.paypal.com/au/cgi-bin/webscr?cmd=p/acc/ipn-info-outside –

+0

도움을 주셔서 감사합니다! 따라서 세션에 데이터를 저장해야합니까? 그리고 페이팔이 데이터를 처리하기 위해 나에게 리디렉션 될 때? 그러나 사용자가 비용을 지불하고 리디렉션하지 못하면 사용자는 비용을 지불하지만 에이전트는 예약 한 여행 정보를 알 수 없습니다. 편집증 받고 죄송합니다 :) 편집 – Laxmana

관련 문제