繁体   English   中英

Paypal Adaptive Payments移动应用程序在完成或取消时挂起

[英]Paypal Adaptive Payments mobile app hangs on completion or cancel

我有一个Ruby On Rails移动应用程序,该应用程序使用带有迷你浏览器的PayPal自适应支付。 该应用程序在iPhone上的Safari中运行时运行良好:完成付款(或取消付款)后,将执行returnFromPaypal回调函数,并将用户重定向至预订页面。

但是,当我以全屏模式(从保存到主屏幕的图标,这是预期的操作模式)运行该应用程序时,当我取消付款或完成付款时,该应用程序会挂在PayPal页面上。消息“请稍等-此窗口将自动关闭”和“返回”。

以下是我的付款页面的.haml视图(很抱歉,我没有HTML版本)。

任何人都知道发生了什么事吗? 谢谢!

= javascript_include_tag  src="https://www.paypalobjects.com/js/external/apdg.js"
#edit_payment.current
  .scroll
    %ul
      %li
        = form_tag "https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay", :method=>'get', :target=>"PPDGFrame", :class=>"standard" do
          = hidden_field_tag :type, "mini", :name=>"expType"
          = hidden_field_tag :paykey, @pay_key, :name=>"paykey"
          = image_submit_tag "paypal_button.jpg", :id=>"submitBtn", :class=>"submit"
    :javascript
      var returnFromPayPal = function(){
          window.location.href = get_full_url("#{room_reservation_path(@room,@reservation)}");
      };                                                                                                                                  
      var dgFlowMini = new PAYPAL.apps.DGFlowMini({trigger: 'submitBtn',expType: 'mini', callbackFunction: 'returnFromPayPal'});

屏幕 快照已 完成http://ec2-23-21-163-203.compute-1.amazonaws.com/images/scrn_complete.png 屏幕快照已取消http://ec2-23-21-163-203.compute-1.amazonaws .com / images / scrn_canceled.png

据我了解,这是“按设计工作”。 只需在WebView中捕获诸如https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/closewindow?execution=e7s1之类的重定向,然后在服务器上调用付款检查方法即可。

apdg.js中,您可以找到检查:

if (ua.match(/iPhone|iPod|Android|Blackberry.*WebKit/i)) {
    win = window.open('', this.name);
    winOpened = true;
}

因此,您当前的窗口已被完全替换。 没有回调的机会。

或者,您可以在WebView本身中支持多个窗口 例如Android:

mWebView.getSettings().setSupportMultipleWindows(true);
mWebView.getSettings().setUserAgentString("web browser");

和@Override

public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, Message resultMsg) {

不确定iOS WebView中有多个窗口。

在更改代码以在新窗口中重定向到PayPal之前,我一直遇到同样的问题。 然后,当用户完成付款或取消付款时,该页面不会挂起,它会自动关闭。

有关迷你浏览器体验(expType = mini)的更多信息,可以在这里找到:

没有模式框或弹出窗口的自适应付款?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM