2012-01-28 16 views
12

Có thể cho tôi nhận các biến đăng bài paypal trong url trả về hay không. Tôi muốn hiển thị thông báo phản hồi trong trang url trả về tùy thuộc vào việc giao dịch của người dùng đã hoàn tất/đang chờ xử lý/không thành công. Tôi đang thử nghiệm với tài khoản sandbox paypal.Paypal - Trang url trả về và biến số

Đây là mã của tôi,

<input type="hidden" name="item_name" value="Credit Purchase">  
<input type="hidden" name="business" value="<?php echo paypal_business_id;?>"> 
<input type="hidden" name="rm" value="2"> 
<input type="hidden" name="cmd" value="_xclick"> 
<input type="hidden" name="currency_code" id="currency_code" value="GBP"> 
<input type="hidden" name="custom" id="custom" value="<?php echo $user."@@@".$num_purchase;?>"> 
<input type="hidden" name="return" value="<?php echo base_url(); ?>buy/success"> 
<input type="hidden" name="cancel_return" value="<?php echo base_url(); ?>"> 
<input type="hidden" name="notify_url" value="<?php echo base_url(); ?>buy/notify 

Trả lời

14

của nó có thể thêm vào return biến, trình tự id, sau đó bạn sẽ có được id đặt hàng của bạn khi sự trở lại người dùng và từ id để bạn thể hiện mình các thông tin.

Ví dụ

<input type="hidden" name="return" value="myReturnUrl.php?OrderID=88273882717A72734"> 
+0

Cảm ơn bạn đã trả lời. Yêu cầu của tôi là biết trạng thái thanh toán. Cũng giống như chúng tôi nhận được tập hợp các biến được đăng từ paypal trong url thông báo, sẽ cùng một tập các biến có sẵn trong url trả về không? Trước đó khi tôi đã thử một vài ngày trước, tôi có thể nhận được nó, nhưng bây giờ họ không nhận được đăng để trả về url. Tôi muốn hiển thị thông báo rằng giao dịch thành công/không thành công trong trang url trả về. –

+1

Tôi lấy lại mọi thứ hoạt động chính xác. Vấn đề là bởi vì, tôi đã nhấp vào liên kết trả lại trước khi thời gian chuyển hướng tự động 10 giây kết thúc. :) –

4

Chờ thông báo IPN đi vào, và nhìn vào payment_status trong đó.
Bởi vì giao dịch được tự động kiểm tra gian lận và có thể được tài trợ bởi tài khoản ngân hàng, được trả về URL trả về của bạn không phải lúc nào cũng đồng nghĩa với giao dịch thành công.

Đối với một danh sách các biến IPN bạn có thể mong đợi, xem PayPal IPN and PDT variables
Bạn sẽ muốn nhìn (ít nhất) tại các giá trị sau:

  • payment_status
  • mc_gross và/hoặc payment_gross (payment_gross được sử dụng nếu giao dịch là bằng USD, mc_gross nếu đó là bất kỳ loại tiền tệ khác)
  • payment_type
  • pending_reason
+0

Có trong trang thành công, tôi kiểm tra xem trạng thái thanh toán đã hoàn thành hay chưa. Tùy thuộc vào trạng thái, tôi đã đóng khung trang phản hồi. Vấn đề tôi đang gặp phải là trong Mozilla Firefox (9.0.1) một lần tôi hoàn tất giao dịch, trước khi được chuyển hướng đến trang url trả về, chính trình duyệt sẽ hiển thị thông báo, yêu cầu cửa sổ bật lên xác nhận tiếp tục. Nếu tôi nhấp vào nút "ok" ngay lập tức thì mọi thứ diễn ra tốt đẹp, nhưng nếu tôi không thực hiện bất kỳ hành động nào, trang được chuyển hướng tự động và tôi không nhận được bất kỳ biến nào được đăng từ paypal. –

+0

Loại sự cố này không tồn tại trong Chrome và IE. Có thể một số người cho tôi biết làm thế nào tôi có thể loại bỏ vấn đề trong firefox –

-2

Loại sự cố này tồn tại trong FF nếu bạn đợi 10 giây. Giải pháp của tôi là thay đổi url trả về thành "xxx.com?orderId=xxx". Sau đó, bạn đánh giá nếu đó là POST hoặc GET. và chọn thông tin đặt hàng của bạn theo orderId Bạn không cần phải lo lắng về trạng thái thanh toán. bởi vì nó phải luôn thành công nếu nó trở lại cửa hàng của bạn không phải "cancel_return"

+2

Wow Quan, đây là lời khuyên cực kỳ nguy hiểm và nguy hiểm. Bạn KHÔNG cần phải xác minh tình trạng thanh toán. Bạn KHÔNG nên chỉ đơn giản giả định rằng thanh toán đã thành công vì URL trả về được gọi. Bạn không nên giả định rằng sự trở lại được gọi bởi PayPal, bạn không nên giả định rằng PayPal đã xử lý thanh toán và bạn không nên bao gồm id đơn đặt hàng trong URL trả lại. – user432297

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