2012-05-05 34 views
19

Im tích hợp Paypal Adaptive Payment API cho trang web trên điện thoại di động. Nhưng khi Im gửi thanh toán choPaypal Thanh toán thích ứng cho web di động

https://www.paypal.com/webscr?cmd=_ap-payment&paykey=value

(Đối với Sandbox: https://www.sandbox.paypal.com/cgi-bin/webscr)

của nó luôn luôn chuyển hướng đến Paypal Main Web. Không phải trang web Paypal Mobile. Làm cách nào để chuyển hướng ứng dụng đến web di động paypal?

+1

Bạn có thể tìm thêm thông tin về trải nghiệm trình duyệt mini (expType = mini) tại đây: [Thanh toán thích ứng không có hộp phương thức hoặc cửa sổ bật lên?] (Http://stackoverflow.com/questions/17283272/adaptive-payments-without-modal -box-or-popups/17729106) – James

Trả lời

6

Hãy thử chuyển hướng trang web của bạn để

https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay?paykey=AP-XYZ&expType=mini

Điền key lương của bạn ở vị trí của AP-XYZ

Hãy cho tôi biết nếu nó hoạt động.

+0

hoạt động như một sự quyến rũ. Cảm ơn! –

+0

Bit thanh toán hoạt động, nhưng tiếc là ở cuối màn hình PayPal không có nút "Quay lại", chỉ nút "Đóng" đóng tab trình duyệt. Điều này sau đó không hỗ trợ trả lại khách hàng quay lại trang web gốc nơi có thể có mã theo dõi bán hàng. Tôi cũng nhận thấy rằng trên thanh toán di động, thông báo thanh toán có thể mất hàng giờ. Họ thực sự không hỗ trợ thanh toán thích ứng trên web di động. – Jordan

+0

không phải là bạn phải bao gồm một số javascript cho dòng chảy để làm việc? Đó là những gì họ đề nghị trong các tài liệu chính thức (mặc dù độ tin cậy của tài liệu paypal là khá thấp) – splinter123

0

đúng - giao diện người dùng thanh toán thích ứng không được tối ưu hóa cho thiết bị di động. Nhưng gần nhất với nó nó cung cấp là những gì chúng ta gọi là kinh nghiệm MiniBrowser. Bạn có thể thử và xem liệu điều đó có đáp ứng nhu cầu của bạn hay không. Bạn có thể tìm ra cách để hướng dẫn ở đây trên X.com: Implementing the Mini-Browser Option

+3

liên kết trên cho x.com bị hỏng –

5

Cách tiếp cận tốt nhất tôi tìm thấy là trải nghiệm trình duyệt mini. Nhưng tôi đã có nhiều vấn đề khác nhau trên thiết bị di động thực hiện nó (đó là những gì nó đã có nghĩa là cho ở nơi đầu tiên). Bạn sẽ thấy nhiều câu hỏi tương tự về thanh toán thích ứng và tất cả các loại vấn đề với việc sử dụng hộp đèn và trải nghiệm trình duyệt mini.

Nhưng cuối cùng ... tôi đã tìm ra sau hàng giờ, hàng ngày! Điều này sẽ giải quyết mọi vấn đề của mọi người đối với tất cả các giống khác nhau khi nói đến các vấn đề với PayPal Adaptive Payments và các vấn đề với:

  1. Trang chuyển hướng mặc định là KHÔNG phản ứng di động và trông khủng khiếp trên thiết bị di động.
  2. Hộp đèn bị "gác máy" và không đóng trên một số thiết bị di động.
  3. Trình duyệt mini không đóng sau khi hoàn tất thanh toán hoặc hủy.
  4. Trình duyệt mini không chuyển hướng đến cuộc gọiBackFunction từ tập lệnh paypal apdg.js.
  5. Không chuyển hướng đến returnUrl và hủyUrl sau khi hoàn thành thanh toán (hoặc khi hủy)
  6. Chrome cho ios (iphones) không khởi tạo chức năng gọi lại và do đó sau khi hoàn thành hoặc hủy thanh toán, nó chỉ giữ bạn tại trang bạn khởi chạy trang thanh toán paypal từ đó ngăn bạn xác nhận thành công hoặc thất bại thanh toán.

Cuộn trống xin vui lòng .... ở đây !! Điều này thay thế bất kỳ nhu cầu cho các tập tin javascript PayPal vv Tất cả bạn cần là những gì dưới đây cùng với phương pháp của riêng bạn có được các PayKey để thêm vào url chuyển hướng. Trang web trực tiếp của tôi, với thanh toán thích ứng hoạt động chính xác sử dụng mã bên dưới, là https://www.trackabill.com.

<div> 
    <?php $payUrl = 'https://www.paypal.com/webapps/adaptivepayment/flow/pay?expType=mini&paykey=' . $payKey ?> 

    <button onclick="loadPayPalPage('<?php echo $payUrl; ?>')" title="Pay online with PayPal">PayPal</button> 
</div> 
<script> 
    function loadPayPalPage(paypalURL) 
    { 
     var ua = navigator.userAgent; 
     var pollingInterval = 0; 
     var win; 
     // mobile device 
     if (ua.match(/iPhone|iPod|Android|Blackberry.*WebKit/i)) { 
      //VERY IMPORTANT - You must use '_blank' and NOT name the window if you want it to work with chrome ios on iphone 
       //See this bug report from google explaining the issue: https://code.google.com/p/chromium/issues/detail?id=136610 
      win = window.open(paypalURL,'_blank'); 

      pollingInterval = setInterval(function() { 
       if (win && win.closed) { 
        clearInterval(pollingInterval); 
        returnFromPayPal(); 
       } 
      } , 1000); 
     } 
     else 
     { 
      //Desktop device 
      var width = 400, 
       height = 550, 
       left, 
       top; 

      if (window.outerWidth) { 
       left = Math.round((window.outerWidth - width)/2) + window.screenX; 
       top = Math.round((window.outerHeight - height)/2) + window.screenY; 
      } else if (window.screen.width) { 
       left = Math.round((window.screen.width - width)/2); 
       top = Math.round((window.screen.height - height)/2); 
      } 

      //VERY IMPORTANT - You must use '_blank' and NOT name the window if you want it to work with chrome ios on iphone 
       //See this bug report from google explaining the issue: https://code.google.com/p/chromium/issues/detail?id=136610 
      win = window.open(paypalURL,'_blank','top=' + top + ', left=' + left + ', width=' + width + ', height=' + height + ', location=0, status=0, toolbar=0, menubar=0, resizable=0, scrollbars=1'); 

      pollingInterval = setInterval(function() { 
       if (win && win.closed) { 
        clearInterval(pollingInterval); 
        returnFromPayPal(); 
       } 
      } , 1000); 
     } 
    } 

    var returnFromPayPal = function() 
    { 
     location.replace("www.yourdomain.com/paypalStatusCheck.php"); 
     // Here you would need to pass on the payKey to your server side handle (use session variable) to call the PaymentDetails API to make sure Payment has been successful 
     // based on the payment status- redirect to your success or cancel/failed page 
    } 
</script> 
+1

Tính năng này có hoạt động ở chế độ xem web gốc trên Android và iOS không? – Heinrich

1

Có một giải pháp đơn giản cho vấn đề này không được ghi ở bất cứ đâu. Chúng tôi đã thảo luận với PayPal về việc thêm nó một thời gian trở lại vì vậy tôi tự hỏi nếu nó cuối cùng đã được thực hiện.

Dù sao, chỉ đơn giản là chỉ cần chuyển hướng người dùng đến URL sau và họ sẽ được chuyển hướng trở lại trang web của bạn trên các dữ liệu:

https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/preapproval?preapprovalKey=PA-XXXXX&expType=redirect 

Sự khác biệt ở đây là sử dụng expType=redirect đúng hơn là expType=mini. Tôi không chắc chắn khi điều này đã được thêm vào nhưng sau một chút kỹ thuật đảo ngược và một số thử nghiệm chúng tôi có một giải pháp đơn giản đáng ngạc nhiên.

+0

Dễ dàng và chính xác. Làm việc như người ở. Cảm ơn! –

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