2012-01-31 34 views
6

Tôi đang sử dụng hộp cát PayPal để thực hiện nút đăng ký và sau đó khi tôi nhận được phản hồi IPN cho đăng ký hoặc hủy đăng ký $ _POST ['txn_id'] sẽ không bao giờ bộ.

Vì vậy, tôi không biết cách xác định giao dịch để chỉ chấp nhận giao dịch độc đáo

Cảm ơn!

EDIT: ví dụ như tất cả các thông tin mà tôi có trong POST cho một subscr_cancel là: amount1, amount3, address_status, subscr_date, payer_id, address_street, mc_amount1, mc_amount3, charset, address_zip, first_name, thực hiện lại, address_country_code, ADDRESS_NAME, otify_version subscr_id tùy chỉnh payer_status kinh doanh address_country address_city verify_sign payer_email btn_id last_name address_state receiver_email định kỳ txn_type ITEM_NAME mc_currency residence_country test_ipn period1 period3 CORRELATION_ID

+0

Bạn có thể xác nhận rằng bạn đang thực sự nhận được IPN cho URL IPN của mình không? Ví dụ: có bất kỳ biến '$ _POST' nào khác của PayPal được đặt không? – Josh

+0

Có Tôi đã nhận tất cả dữ liệu khác trong POST, ngay cả txn_type cũng thật lạ khi tôi không có txn_id –

+0

Cảm ơn bạn đã chỉnh sửa. Điều đó giúp ích rất nhiều. Lời giải thích của tôi dưới đây sẽ làm rõ vấn đề của bạn. – Josh

Trả lời

6

Theo Table 2. Summary of subscription variables:

Đối với các biến thuê bao, ID giao dịch (txn_id) chỉ có sẵn cho thanh toán USD và Multi-ngoại tệ loại giao dịch thanh toán (txn_type).

Đúng như dự đoán, PayPal sẽ không gửi txn_id để IPN của bạn cho các loại hình giao dịch, subscr_cancel, và sẽ chỉ gửi txn_id nếu loại giao dịch là subscr_payment.

Để được giải thích thêm về các biến được gửi đến URL IPN của bạn dựa trên giao dịch của bạn, vui lòng xem IPN and PDT Variables.

+0

Cảm ơn! Ok vậy không có cách nào để xác định một giao dịch loại subscr_cancel để đảm bảo rằng nó là duy nhất? –

+0

Nếu bạn có phương thức xác định duy nhất giao dịch của riêng mình hoặc bạn có ID giao dịch từ giao dịch thanh toán, bạn có thể gửi các biến của riêng bạn tới PayPal, biến này sẽ trở lại IPN của bạn. - Bạn có thể sử dụng một trong hai 'hoá đơn' hoặc' tùy chỉnh', và bạn sẽ thấy chúng trong IPN của bạn. – Josh

+0

Ok cảm ơn rất nhiều sự giúp đỡ của bạn;) –

0

Bạn đã kiểm tra $_REQUEST['txn_id'] vì điều này có thể được gửi đến máy chủ của bạn thông qua GET.

+0

Có, tôi vừa thử nghiệm nó ngay bây giờ $ _GET ['txn_id'] và $ _REQUEST ['txn_id'] và chúng không được thiết lập –

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