2015-02-13 17 views
6

Tôi cần mô phỏng IPN khi thanh toán định kỳ không thành công. Ứng dụng của tôi sau đó có thể tạo các hóa đơn đang chờ xử lý và gửi cho khách hàng.Mô phỏng IPN cho recurring_payment_skipped từ developer.sandbox.com

tôi đã tìm kiếm và phát hiện ra rằng tôi sẽ cần phải thiết lập IPN mà sẽ xử lý bên dưới txn_type

  • recurring_payment_skipped
  • recurring_payment_failed

hai sẽ là đủ?

Ngoài ra, gần đây đã cung cấp công cụ mới có tên là IPN Simulator nơi bạn có thể gửi IPN mẫu đến URL. Nó chỉ hỗ trợ bên dưới txn_type s

  • web_accept (eCheck-chờ giải quyết, eCheck-giảm, eCheck động hoàn tất)
  • cart (Express Checkout, giỏ hàng thanh toán)
  • web_accept (Web Chấp nhận, Refund)

    và cứ tiếp tục như vậy. Nhưng không có recurring_payment_skipped hoặc recurring_payment_failed

Tôi có thể mô phỏng từ đâu?

Hãy giúp tôi.

+0

Chỉ cần tìm thấy bài này http://stackoverflow.com/questions/ 18823527/send-paypal-định kỳ-thanh toán-lệnh-với-ipn-simulator? Rq = 1. Tôi đoán PayPal không cung cấp một bộ mô phỏng IPN cho các loại giao dịch đó. – Hussain

+0

Bạn có thể chạy tập lệnh thường xuyên với cron để kiểm tra mọi khoản thanh toán định kỳ chưa được thanh toán khi cần và mô phỏng thanh toán không thành công từ đó không? – developerbmw

Trả lời

0

Bạn đã chính xác, hiện tại, Trình mô phỏng IPN không hỗ trợ Loại giao dịch cho đăng ký. Hôm qua, ngày 29 tháng 5 năm 2015, tôi đặt trong một yêu cầu cho việc này tại PayPal-PHP-SDK github

https://github.com/paypal/PayPal-PHP-SDK/issues/316

Có một workaround,

Đối với IPN Simulator, tôi chọn một số loại giao dịch như " Thanh toán giỏ hàng ". Sau đó, trong trường "tùy chỉnh" tôi đặt "sim".

Trong trình nghe IPN, tôi có một khối mã kiểm tra nếu trường "tùy chỉnh" được đặt thành "sim", nếu đúng, sau đó tôi mã cứng trong giá trị thử nghiệm.

// if data is coming from the IPN Simulator then 
    // just hard code the data in here 
    if ($rawData[custom] == "sim") { 
     $rawData[txn_type] = "recurring_payment";   
     $rawData[recurring_payment_id] = "I-ABCDEF123456"; 
    } 

Nếu "tùy chỉnh" không được đặt thành "sim", thì trình nghe IPN của bạn sẽ bỏ qua khối và chức năng này bình thường. Lưu ý: rawData là một mảng để giữ dữ liệu thô. Khi bắt đầu của trình nghe IPN, tôi lấy tất cả dữ liệu thô và đặt nó vào một mảng.

này sẽ cho phép bạn để có được kịch bản IPN của bạn làm việc, và cùng một lúc, không can thiệp vào bất kỳ dữ liệu IPN sản khác đến ở.