2009-02-19 30 views
9

Tôi muốn sử dụng dịch vụ IPN của Paypal để xác minh các khoản thanh toán cho khoản phí đăng ký định kỳ cho trang web của tôi. Làm thế nào để bạn liên kết xác nhận IPN với người dùng trong trang web của bạn? Thông báo xác nhận IPN có tên, email, ID paypal, ID thanh toán định kỳ, nhưng có vẻ như không cung cấp mã định danh duy nhất vì tôi không biết ID thanh toán hoặc id thanh toán định kỳ đến từ đâu và nó có thể không là không đáng kể để kết hợp duy nhất tên/email mà người dùng có trên tài khoản paypal của họ (hoặc được nhập) với tên/email tôi có trên trang web của tôi (có thể có nhiều John Smith và người đó có thể chọn sử dụng email khác.)Làm cách nào để kết nối xác nhận IPN Paypal với người dùng?

1) Khi tôi gửi yêu cầu thanh toán ban đầu cho Paypal, tôi có thể đính kèm UUID duy nhất vào URL tôi yêu cầu họ gửi lại cho tôi, vì vậy nếu tôi lưu ID duy nhất đó cho người dùng đó khớp với xác nhận thanh toán đó cho người dùng đã bắt đầu thanh toán. Tôi có làm nó khó hơn nó không? Có cách nào dễ hơn không?

2) Ngoài ra, đối với phí định kỳ/đăng ký, paypal có luôn sử dụng URL mà tôi đã chỉ định với lần bắt đầu thanh toán ban đầu không? Có ai có kinh nghiệm thực tế bằng cách sử dụng các khoản thanh toán Paypal định kỳ với IPN không, nó có sử dụng lại URL duy nhất đó không? Hoặc tôi có phải liên kết ID của Paypal với người dùng sau khi nhận được thanh toán định kỳ đầu tiên không?

Trả lời

2

Gần đây tôi cũng đã thiết lập một số khoản thanh toán định kỳ với Paypal.

Tôi thực sự muốn mọi người đăng ký làm thành viên sau khi thanh toán cho đăng ký nếu họ muốn. Khi phải đăng ký làm thành viên có thể thêm một số ma sát vào quy trình bán hàng. Vì vậy, tôi không gửi bất kỳ thông tin người dùng nào cùng với nút Đăng ký.

Kịch bản IPN của tôi là tạo mã kích hoạt duy nhất gắn với thuê bao Paypal trong bảng Kích hoạt, sau đó gửi mã này cho bất kỳ ai đã thanh toán cho đăng ký, với hướng dẫn về cách kích hoạt.

Tại thời điểm kích hoạt, bạn cần đăng ký hoặc đăng nhập. Tại thời điểm này, userID được thêm vào hàng có liên quan trong bảng Kích hoạt.

Khi thông báo IPO EndOfTerm xuất hiện trong tập lệnh IPN, hãy tra cứu userID từ bảng Kích hoạt dựa trên SubscriberID được đưa ra trong IPN. Sau đó, tôi có thể làm bất cứ điều gì tôi cần làm cho người dùng đó để vô hiệu hóa đăng ký của họ.

Lúc nào URL của tập lệnh IPN vẫn giữ nguyên.

+0

giải pháp tốt quá. – Tim

+0

Bạn phản ứng với mã trạng thái txn_type nào? Tôi đang gặp khó khăn trong việc trả lời câu hỏi này. http://stackoverflow.com/questions/13855287/parsing-paypal-subscription-ran-out – Volomike

0

1) Bạn có thể gửi thông số 'item_number' với thiết lập đăng ký ban đầu, cài đặt này sẽ được chuyển lại cho bạn. Tôi khuyên bạn nên nhúng mã thông báo nhận dạng vào đó.

2) Nếu bạn có nghĩa là tham số 'trả về', không, đó là để gửi người dùng đến khi kết thúc thiết lập đăng ký. Việc gia hạn là tự động và không 'ping' trang đó.

+0

Tôi đã hết phiếu, nhưng tôi nghĩ điều này là đúng. – Tim

3

Việc đính kèm dữ liệu duy nhất vào yêu cầu thanh toán là khá nhiều cách được chấp nhận để thực hiện.

Tôi không có bất kỳ trải nghiệm nào với các khoản phí định kỳ.

+0

Tôi không tham gia bỏ phiếu nếu không, tôi sẽ +1 – Tim

+0

Bạn có biết cách truyền một số dữ liệu cùng với dữ liệu PayPal khác, trong yêu cầu PayPal ban đầu, được tạo từ một lần nhấp vào nút "Trả tiền ngay bây giờ" không? –

+1

@VladimirDespotovic Có một trường bổ sung trong cả nút "Thanh toán ngay" và API yêu cầu thanh toán, nơi bạn có thể thêm dữ liệu tùy chỉnh. Dữ liệu tùy chỉnh đó được gửi lại cho bạn trong * mọi phản hồi có liên quan đến giao dịch. – greyfade

0

1) Bạn muốn sử dụng thông số item_number. Đặt điều này trong biểu mẫu HTML của bạn được hiển thị cho khách hàng và nó sẽ được trả lại cho bạn bằng IPN paypal, vì vậy bạn có thể đặt ID hàng cơ sở dữ liệu tại đây và sử dụng nó để khớp với đúng người sau này.

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