Ruby Paypal自适应支付移动应用程序在完成或取消时挂起
我有一个Ruby On Rails移动应用程序,它使用PayPal自适应支付和迷你浏览器。当在iPhone上的Safari中运行时,该应用程序工作正常:在完成付款(或取消付款)后,将执行returnFromPaypal回调函数,并将用户重定向到预订页面Ruby Paypal自适应支付移动应用程序在完成或取消时挂起,ruby,mobile,paypal,payment,Ruby,Mobile,Paypal,Payment,我有一个Ruby On Rails移动应用程序,它使用PayPal自适应支付和迷你浏览器。当在iPhone上的Safari中运行时,该应用程序工作正常:在完成付款(或取消付款)后,将执行returnFromPaypal回调函数,并将用户重定向到预订页面但是,当我以全屏模式运行应用程序时(从保存到主屏幕的图标,这是预期的操作模式),当我取消付款或完成付款时,应用程序会挂在PayPal页面上,并分别显示消息“稍等-此窗口将自动关闭”和“返回”。 下面是我的付款页面的.haml视图(很抱歉,我没有HT
但是,当我以全屏模式运行应用程序时(从保存到主屏幕的图标,这是预期的操作模式),当我取消付款或完成付款时,应用程序会挂在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'});
我也遇到了同样的问题,直到我在一个新窗口中将代码改为重定向到PayPal。然后,当用户完成支付或取消时,页面不会挂起,它会自动关闭 有关迷你浏览器体验(expType=mini)的更多信息,请参见: 据我所知,这是“按设计工作”。只需在WebView中捕获重定向,并在服务器上调用付款检查方法 在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");
及
@凌驾
public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, Message resultMsg) {
不确定iOS WebView中有多个窗口