简体   繁体   English

Paypal:无法重新授权授权付款错误:发生内部服务错误

[英]Paypal: Unable to Reauthorize Authorized Payment Error : An internal service error occurred

Paypal: Unable to Reauthorize Authorized Payment Paypal:无法重新授权授权付款

Below is my code 以下是我的代码

$clientId = 'XXXXX';
$secret = 'XXXX';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/oauth2/token");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $clientId . ":" . $secret);
$result = curl_exec($ch);

if (empty($result)) {
    die("Error: No response.");
} else {
    $json = json_decode($result);
    //echo "<pre>";
    //print_r($json);
    //exit;
    $token_type = $json->token_type;
    $access_token = $json->access_token;
    $nonce = $json->nonce;

    //echo "Authorization: " . $token_type . " " . $access_token;

    if (!empty($token_type) && !empty($access_token)) {

        // START REAUTHORIZE PAYMENT
        $authorizationId = 'AF998724VR277443T';
        $currency = 'USD';
        $amount = '20.00';
        $data = '{
                    "amount": {
                    "total": "' . $amount . '",                     
                    "currency": "' . $currency . '"

                    }
                };';


        $ch1 = curl_init();
        curl_setopt($ch1, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/payments/authorization/" . $authorizationId . "/reauthorize");
        curl_setopt($ch1, CURLOPT_POST, true);
        curl_setopt($ch1, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch1, CURLOPT_HTTPHEADER, array(
            "Content-Type: application/json",
            "Authorization: " . $token_type . " " . $access_token,
            "Content-length: " . strlen($data))
        );

        $result1 = curl_exec($ch1);
        if (empty($result1)) {
            die("Error: No response.");
        } else {
            $json1 = json_decode($result1);
            echo "<pre>";
            print_r($json1);
            exit;
            //echo $json1->id;
        }
        // END REAUTHORIZE PAYMENT
    }
}

It gives below error 它给出了以下错误

stdClass Object
(
    [name] => INTERNAL_SERVICE_ERROR
    [message] => An internal service error occurred.
    [information_link] => https://developer.paypal.com/webapps/developer/docs/api/#INTERNAL_SERVICE_ERROR
    [debug_id] => b220155a9c70e
)

https://developer.paypal.com/docs/api/payments/#authorization_reauthorize https://developer.paypal.com/docs/api/payments/#authorization_reauthorize

What i'm missing. 我错过了什么。 I'm running above code on WAMP. 我在WAMP上运行代码。

As per Paypal : 按照Paypal:

After the three-day honor period authorization expires, you can reauthorize the payment. 在三天荣誉期授权到期后,您可以重新授权付款。

It looks like the authorization id is already reauthorized and still inside the honor period. 看起来授权ID已经被重新授权并且仍在荣誉期内。 Hence PayPal is not allowing the Reauthorization. 因此,PayPal不允许重新授权。 You may try again after the honor period expire. 您可以在荣誉期到期后再试一次。

Add

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

HTTPS link, could be related to your problem HTTPS链接可能与您的问题有关

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM