paypal 上的状态仍然是 APPROVED

Status on paypal is still APPROVED

我在与 PayPal 集成支付时遇到问题。 我正在使用 REST API,这是我创建订单的代码:

    $curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.sandbox.paypal.com/v2/checkout/orders",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => '{
  "intent": "CAPTURE",
  "purchase_units": [
    {
      "reference_id": "PUHF",
      "amount": {
        "currency_code": "PLN",
        "value": "100.00"
      }
    }
  ],
  "application_context": {
    "return_url": "http://www.mywebside.com",
    "cancel_url": ""
  }
}',
  CURLOPT_HTTPHEADER => array(
    'accept: application/json',
    'accept-language: en_US',
    'authorization: Bearer '.$access_token.'',
    'content-type: application/json'
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

我在沙盒环境中工作。我转到支付页面并转账虚拟货币。 当它将我重定向到我的网站时,我会检查订单状态。 Status 的值为“APPROVED”而不是“COMPLETED”,并且钱也没有记入帐户。它取决于什么?

您需要两次 API 调用,一次调用 'Set Up Transaction' 并创建订单,然后调用一次调用 'Capture Transaction' 获得批准,如下所述: https://developer.paypal.com/docs/checkout/reference/server-integration/

如果您不获取订单,它将保持已批准状态。

为获得最佳用户体验,请勿使用任何重定向。完全没有。保持您的网站在后台加载,并向用户提供现代 in-context 登录以供批准。这是 UI:https://developer.paypal.com/demo/checkout/#/pattern/server