php PayPal订单V2未处理批准URL

vd8tlhqk  于 2023-06-20  发布在  PHP
关注(0)|答案(2)|浏览(158)

根据贝宝订单API作为文档在这里,我们必须首先创建订单然后从响应,我们必须复制批准的URL并在浏览器中运行.这将打开PayPal页面。买方将批准该请求。在此之后,应发出捕获请求。

发行详情

我有下面的代码,使用PayPal API创建订单:

$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $uri, [
        'json' => [
            "intent" => "CAPTURE",
            "purchase_units" => [
                [
                    "amount" => [
                        "currency_code" => "USD",
                        "value" => "100.00"
                    ]
                ]
            ]
        ],
        'headers' => [
            'Accept' => 'application/json',
            'Accept-Language' => 'en_US',
            'Content-Type' => 'application/json',
        ],
        'auth' => [$clientId, $secret, 'basic']
    ]            
);
$data = json_decode($response->getBody(), true);
echo "<pre>";
print_r($data);
echo "</pre>";

这段代码运行良好。这给了我4个网址,如下面的截图所示。

在此之后,我使用rel = approve复制URL。标签:https://www.sandbox.paypal.com/checkoutnow?token=3C454469W0667862G
现在,运行这个网址,这将打开沙盒贝宝页面。买家登录后,点击支付,它停留在同一页面上没有任何错误。
知道为什么会这样吗

bttbmeg0

bttbmeg01#

'json' => [
        "intent" => "CAPTURE",
        "purchase_units" => [
            [
                "amount" => [
                    "currency_code" => "USD",
                    "value" => "100.00"
                ]
            ]
        ]
    ],

买家登录后,点击支付,它停留在同一页面上没有任何错误。
知道为什么会这样吗
你没有在创建主体的application_context中指定任何return_url。没有地方让它重定向下一个,所以它只是停留在同一页上。
为了获得最佳的用户体验,不要使用任何到approval_url或返回url的重定向。不要使用重定向。一点也不
相反,将“创建订单”和“捕获订单”这两个服务器端路由与以下审批流配对:https://developer.paypal.com/demo/checkout/#/pattern/server
这可以让您的网站随时加载。

vxbzzdmp

vxbzzdmp2#

因为缺少return_url。下面是需要以JSON格式发布的数组示例

Array
(
  [intent] => CAPTURE
  [purchase_units] => Array
    (
        [0] => Array
            (
                [amount] => Array
                    (
                        [currency_code] => USD
                        [value] => 100
                    )

                [payment_instruction] => Array
                    (
                        [disbursement_mode] => INSTANT
                    )
            )
    )

[payment_source] => Array
    (
        [paypal] => Array
            (
                [experience_context] => Array
                    (
                        [return_url] => https://example.com/return
                        [cancel_url] => https://example.com/cancel
                    )

                [name] => Array
                    (
                        [given_name] => A
                        [surname] => B
                    )

            )

    )
)

相关问题