上下文中的 PayPal Checkout Express 在我的 GWT 项目中不起作用

标签 paypal popupwindow gwt-rpc express-checkout

在我的项目 GWT-RPC 中,我在服务器端使用 SDK 商家 PayPal 在沙盒模式下使用 API 调用。在服务器端我有:

PayPalAPIInterfaceServiceService service=new       PayPalAPIInterfaceServiceService(configMap);

            PaymentDetailsType paymentDetails = new PaymentDetailsType();
            paymentDetails.setPaymentAction(PaymentActionCodeType.fromValue("Sale"));
            PaymentDetailsItemType item = new PaymentDetailsItemType();
            BasicAmountType amt = new BasicAmountType();
            amt.setCurrencyID(CurrencyCodeType.EUR);
            String itemAmount = "10.00";
            amt.setValue(itemAmount);
            int itemQuantity = 1;
            item.setQuantity(itemQuantity);
            item.setName("pagamento su Movieuniverse");
            item.setAmount(amt);


            List<PaymentDetailsItemType> lineItems = new ArrayList<PaymentDetailsItemType>();
            lineItems.add(item);
            paymentDetails.setPaymentDetailsItem(lineItems);
            BasicAmountType orderTotal = new BasicAmountType();
            orderTotal.setCurrencyID(CurrencyCodeType.EUR);
            orderTotal.setValue(((Double)(Double.parseDouble(itemAmount) * itemQuantity)).toString()); 
            paymentDetails.setOrderTotal(orderTotal);
            List<PaymentDetailsType> paymentDetailsList = new ArrayList<PaymentDetailsType>();
            paymentDetailsList.add(paymentDetails);

            SetExpressCheckoutRequestDetailsType setExpressCheckoutRequestDetails = new SetExpressCheckoutRequestDetailsType();
            setExpressCheckoutRequestDetails.setReturnURL("http://127.0.0.1:8888/MovieUniverse.html#order_confirmed");
            setExpressCheckoutRequestDetails.setCancelURL("http://127.0.0.1:8888/MovieUniverse.html#order_cancelled");

            setExpressCheckoutRequestDetails.setPaymentDetails(paymentDetailsList);

            SetExpressCheckoutRequestType setExpressCheckoutRequest = new SetExpressCheckoutRequestType(setExpressCheckoutRequestDetails);
            setExpressCheckoutRequest.setVersion("104.0");

            SetExpressCheckoutReq setExpressCheckoutReq = new SetExpressCheckoutReq();
            setExpressCheckoutReq.setSetExpressCheckoutRequest(setExpressCheckoutRequest);

            SetExpressCheckoutResponseType res=service.setExpressCheckout(setExpressCheckoutReq);
            String token=res.getToken();
            return token;

通过这种方式,我获得了 token 并使用上下文模式,使用 2 个脚本 如 PayPal Checkout Express 上下文文档中所写

    window.paypalCheckoutReady=function(){
        paypal.checkout.setup("2GF99UMQQF66A",{
            environment:'sandbox',
            container: "paypal"
        });
    }   
ScriptInjector.fromString(JsResources.INSTANCE.scriptOpenPopupPaypal().getText()).setWindow(ScriptInjector.TOP_WINDOW).inject(); 


ScriptInjector.fromUrl("http://www.paypalobjects.com/api/checkout.js").setWindow(ScriptInjector.TOP_WINDOW).inject();

点击 payapal 结帐按钮,它会在弹出窗口中打开此链接(由两个脚本获取) https://www.sandbox.paypal.com/checkoutnow?useraction=commit&token=<TOKEN-OBTAINED>

我现在点击付款,但付款没有注册,弹出窗口关闭后,它仍然是我的页面,上面有 paypal 加载通知,在这个页面下面是返回页面,这里是屏幕:

a

b

c

我不知道实现中有什么问题,为什么仍然是 paypal 加载,也许 URL 应该不同。在 paypal 文档上写着我应该使用: <form id="myContainer" method="post" action="/checkout"></form> , 但是我怎样才能给它 API 调用的结果呢?所以我直接使用看到的 link=URL+token 并将其插入 html 片段中的 href(以便脚本使用):

<div class="container">
    <a id='paypal'
     href="">   
    </a>
</div>

因此链接将在弹出窗口中打开,但由于前面解释的原因它不起作用。 多谢!

文档: PayPal Checkout Express in-context

最佳答案

2017 年 1 月 1 日起,此集成方法已弃用。 PayPal 继续支持使用此方法的现有商家,但请注意,新功能和增强功能不会应用于这些集成。

更多详情请访问documentation

带有关联流程的 PayPal Express Checkout 为您的客户提供了简化的结账体验,使他们在整个付款授权过程中都在您的网站本地,并使他们能够使用他们的 PayPal 余额、银行账户或信用卡进行支付而无需共享或在您的网站上输入任何敏感信息。

对于新的集成,请参阅 PayPal Checkout Integration Guide .

关于上下文中的 PayPal Checkout Express 在我的 GWT 项目中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31797847/

相关文章:

android - Android PopupWindow Activity 时背景模糊或变暗

android - 当从单独的类调用 PopupWindow 方法时,如何从 xml 文件在 PopupWindow 中定义布局

gwt - 使用 ssl(https) 时请求生成器调用不返回

gwt - 等待多个事件(使用 GWT)

paypal - 无法在沙盒中创建订阅按钮(重定向到实时站点)

c# - 错误 Paypal 沙箱 : The request was aborted: Could not create SSL/TLS secure channel

html - 下拉菜单中的样式悬停状态(PayPal)

paypal - Paypal 的用户名和密码错误

java - radio 组上的空指针异常

java - 无法让 gwt-syncproxy 工作