根据贝宝订单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
现在,运行这个网址,这将打开沙盒贝宝页面。买家登录后,点击支付,它停留在同一页面上没有任何错误。
知道为什么会这样吗
2条答案
按热度按时间bttbmeg01#
买家登录后,点击支付,它停留在同一页面上没有任何错误。
知道为什么会这样吗
你没有在创建主体的application_context中指定任何return_url。没有地方让它重定向下一个,所以它只是停留在同一页上。
为了获得最佳的用户体验,不要使用任何到approval_url或返回url的重定向。不要使用重定向。一点也不
相反,将“创建订单”和“捕获订单”这两个服务器端路由与以下审批流配对:https://developer.paypal.com/demo/checkout/#/pattern/server
这可以让您的网站随时加载。
vxbzzdmp2#
因为缺少return_url。下面是需要以JSON格式发布的数组示例