Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php paypal上的状态仍然被批准_Php_Api_Paypal_Paypal Sandbox_Payment - Fatal编程技术网

Php paypal上的状态仍然被批准

Php paypal上的状态仍然被批准,php,api,paypal,paypal-sandbox,payment,Php,Api,Paypal,Paypal Sandbox,Payment,我对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 => "

我对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;
}
我在沙箱环境中工作。我进入付款页面并转移虚拟货币。
当它将我重定向到我的站点时,我检查订单状态。状态为value=“APPROVED”而不是“COMPLETED”,并且钱也不会记入帐户。它取决于什么?

您需要两个API调用,一个用于“设置事务”并创建订单,另一个用于在批准后“捕获事务”,如下所述:

如果您没有捕获订单,它将保持在已批准状态


为了获得最佳用户体验,请不要使用任何重定向。完全在后台加载您的站点,并为用户提供一个现代的上下文登录以供批准。这是它的用户界面:

您设置了捕获的意图,但从未进行过实际捕获。PayPal在幕后有3个步骤:1:创建订单,提供详细信息,使用令牌将用户发送到PayPal。2:从返回用户处获取返回令牌,并检查他们是否批准了该令牌。3:使用返回值在最终操作中捕获资金。您还可以使用PayPal REST API SDK for PHP使代码中的事情变得更简单:。。。我说得容易一点,但这是主观的,因为这个臃肿和垃圾作曲者到处走动。