2009-03-25 67 views
17

Tôi muốn có biểu mẫu nhập văn bản có nút gửi đi đến paypal, sau khi thanh toán nội dung của biểu mẫu phải đi vào cơ sở dữ liệu mysql ..Ví dụ về Paypal IPN đơn giản?

Điều này nghe có vẻ tầm thường, nhưng tôi đang có một thời gian khó khăn với IPN của paypal.

Có ai có thể chỉ cho tôi đúng hướng không?

Cảm ơn!

Trả lời

13

PayPal có một số mã mẫu trên trang web của họ. Tuy nhiên vấn đề lớn hơn bạn sẽ phải đối mặt là người dùng có thể sẽ muốn có một phản ứng thời gian thực. Điều này thường được thực hiện bằng cách xử lý dữ liệu PDT được gửi đến trang web của bạn khi người dùng nhấp vào liên kết để quay lại trang web của bạn. Tại một số thời điểm sau, PayPal sẽ đăng lên dữ liệu tương tự IPN url của bạn. Bạn cần tránh xử lý dữ liệu hai lần.

Ngoài ra, dữ liệu được đề cập chỉ là dữ liệu của PayPal về giao dịch. Nó không chứa dữ liệu tùy ý. Bạn có lẽ nên ghi lại thứ tự của khách hàng trước khi gửi chúng đến paypal, hoặc tìm kiếm một biến vượt qua. Ví dụ: khi tạo thỏa thuận thanh toán, có một biến được gọi là custom được chuyển lại cho bạn khi bạn tạo nó. Bạn có thể lưu trữ một id đơn đặt hàng hoặc bất cứ điều gì bạn muốn trong biến đó. Hãy cẩn thận để xác thực nội dung của nó để đảm bảo nội dung vẫn chính xác cho chi tiết giao dịch.

+0

@Robert Xin chào. Tôi đã thiết lập của tôi theo cách này. Khách hàng truy cập paypal và thanh toán cho đơn đặt hàng và sau đó được chuyển hướng trở lại URL trả về, nơi thanh toán được kiểm tra và lưu trữ trong cơ sở dữ liệu và email được tạo sau đó với chi tiết về giao hàng vv. khách hàng thanh toán bằng paypal và sau đó đóng trình duyệt trước khi quay lại trang web của tôi. thứ tự sẽ không được lưu trữ? tôi sẽ sử dụng IPN vì điều này nhưng tôi không chắc chắn cách tốt nhất là gì. làm yo uahve lời khuyên nào? – Sarah

6

Bạn không thể và không thể lấy toàn bộ nội dung của biểu mẫu từ Paypal. Những gì bạn sẽ nhận được là một postback đến địa chỉ bạn đã gửi trong trường "return". Cách tốt nhất để chuyển thông tin tùy ý thông qua quá trình từ biểu mẫu của bạn tới postback nằm trong trường "item_number" (tốt nhất là sử dụng nó như một ID trong cơ sở dữ liệu của bạn được liên kết với bất kỳ thông tin nào bạn muốn theo dõi).

2

This PHP sample sẽ giúp bạn bắt đầu với IPN.

Ở đây bạn có thể tìm thấy PHP API for PayPal, có thể hữu ích mặc dù nó không bao gồm mẫu liên quan đến IPN.

1

Bạn sẽ tìm thấy một số ví dụ về IPN Script nếu bạn làm theo link này

https://paypaltech.com/SG2/

Chỉ cần chọn ngôn ngữ lập trình của bạn và loại kịch bản mà bạn đang loonking cho.

+0

Trang web chỉ cung cấp cho tôi 'sắp có' khi tôi chọn C# –

0

Bạn đang đoán những gì bạn muốn là tạo biểu mẫu khi người dùng nhấp vào nút gửi được đưa đến paypal và sau đó quay lại trang web của bạn nơi bạn có thể nhận được nội dung của biểu mẫu CỦA BẠN?

Tôi chưa thấy mọi người làm điều này, những gì tôi thấy mọi người làm là khi người dùng gửi biểu mẫu họ được đưa đến tập lệnh để xử lý biểu mẫu và trong tập lệnh đó, họ được chuyển hướng đến paypal. họ trả tiền, sau đó bạn có thể sử dụng IPN để xử lý phản hồi của paypal.

6

Tôi biết câu hỏi này đã được trả lời nhiều năm trước, nhưng đối với những người vấp ngã nó trong tương lai ...

tôi thấy lớp này + ví dụ để thể đặc biệt hữu ích, nhiều đến nỗi tôi đã tái sử dụng nó cho không biết bao nhiêu dự án: http://www.micahcarrick.com/php-paypal-ipn-integration-class.html

Cập nhật: Các trang web là ẩn bây giờ, nhưng có một phiên bản lưu trữ ở đây mà vẫn có một liên kết tải về làm việc: https://web.archive.org/web/20140210202247/http://www.micahcarrick.com/php-paypal-ipn-integration-class.html

Và đây là một liên kết trực tiếp để tải về lưu trữ: https://web.archive.org/web/20140210202247/http://www.micahcarrick.com/files/paypal-1.3.0.zip

Từ trang lưu trữ, tác giả cũng liên kết đến một phiên bản mới của thư viện của mình, đó là prob ably tùy chọn tốt hơn ngay bây giờ: https://github.com/Quixotix/PHP-PayPal-IPN

+0

Liên kết bị hỏng. – michaelmsm89

+1

@ michaelmsm89 Shoot. May mắn là archive.org có bản sao lưu với liên kết tải xuống đang hoạt động. Tôi sẽ cập nhật câu trả lời của mình. – Josh1billion

Các vấn đề liên quan