Java PayPal SDK 汇款至企业账户

问题描述 投票:0回答:1

我希望我的客户能够使用 PayPal 在我的 Java 应用程序中购买某些服务。 我用的是SDK。输入我的 ClientID 和 SecretID 后,我会收到一个批准链接。如果我打开它,官方 PayPal 窗口实际上会打开。但是,当我单击“付款”时,我被重定向,但没有任何反应。没有从我的账户中扣除任何资金,也没有任何资金存入企业账户。 有人有工作代码吗? 预先感谢!

当我进入 paypal 开发者仪表板时,我可以看到我的所有 API 调用都是绿色的。

这是我的代码:

        Order order = null;
        // Construct a request object and set desired parameters
        // Here, OrdersCreateRequest() creates a POST request to /v2/checkout/orders
        OrderRequest orderRequest = new OrderRequest();
        orderRequest.checkoutPaymentIntent("CAPTURE");
        List<PurchaseUnitRequest> purchaseUnits = new ArrayList<>();
        purchaseUnits.add(new PurchaseUnitRequest().amountWithBreakdown(new AmountWithBreakdown().currencyCode("EUR").value("0.01")));
        orderRequest.purchaseUnits(purchaseUnits);
        OrdersCreateRequest request = new OrdersCreateRequest().requestBody(orderRequest);

        try {
            // Call API with your client and get a response for your call
            HttpResponse<Order> response = Credentials.client.execute(request);  // Here are the keys

            // If call returns body in response, you can get the de-serialized version by
            // calling result() on the response
            order = response.result();
            System.out.println("Order ID: " + order.id());
            order.links().forEach(link -> System.out.println(link.rel() + " => " + link.method() + ":" + link.href()));
        } catch (IOException ioe) {
            if (ioe instanceof HttpException) {
                // Something went wrong server-side
                HttpException he = (HttpException) ioe;
                System.out.println(he.getMessage());
                he.headers().forEach(x -> System.out.println(x + " :" + he.headers().header(x)));
            } else {
                System.out.println(ioe);
            }
        }

我被重定向,但没有转账。

编辑:我刚刚发现我应该使用付款。我使用了支付 SDK,但现在收到此错误:

"{"name":"AUTHORIZATION_ERROR","message":"发生授权错误。","debug_id":"578ce67e544c5","information_link":"https://developer.paypal.com/docs/api/ payments .payouts-batch/#errors","链接":[]}"

我还在我的应用程序中选中了“付款”复选框。复选框已选中。

java paypal sdk
1个回答
0
投票

编辑:我刚刚发现我应该使用付款。

你从哪里发现这个的?付款用于付款,即从您的帐户汇款。这与您描述的用例相反,即从付款人处接收资金。

当使用问题中的(已弃用的)SDK 实现的 v2/checkout/orders API 时,您必须指定 return_url。付款人单击“付款”批准订单后,他们将被重定向回该 URL。在该 URL 上,您必须显示一个确认页面,并且确认操作应该执行最终的 API 调用来捕获订单。基于此捕获响应,您必须向用户显示结果(成功或失败)。

此重定向是一种旧的集成模式。如果使用它,并且您不打算显示订单审核步骤(即您的集成打算立即继续捕获),那么在这种情况下您必须指定 payment_source.paypal.user_action = 'PAY_NOW' 以便最终操作PayPal 说“付款”而不是“继续查看订单”(后者是重定向集成的默认设置)。

由于您使用的 SDK 已弃用,因此应改为直接集成(JSON 格式的 HTTPS,使用您的客户端 ID 和密钥首先获取 oauth2 访问令牌)。此外,从您的网站重定向到 PayPal 然后返回您的网站的模式是旧网站使用的旧集成模式。今天没有理由使用它。

相反,请遵循当前的标准 PayPal 集成指南,该指南使用 JS SDK 进行付款人批准,而无需从您的网站进行任何重定向。它在后台保持加载状态。该链接提供了 Node.js 中的示例后端代码,但这只是一个示例 - 这些相同的路由和操作应该从您选择的后端环境(本例中为 Java)实现。

© www.soinside.com 2019 - 2024. All rights reserved.