[英]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.