PayPal REST API - 使用PHP和curl进入实时模式

时间:2017-11-27 12:19:57

标签: php api curl paypal paypal-sandbox

我正在开发一个使用Paypal REST API进行付款的在线商店。 一切都在沙盒模式下工作正常,但是当我尝试进入实时时,我收到此消息:

{"error":"invalid_client","error_description":"Client Authentication failed"}

我将身份验证网址更改为:https://api.paypal.com/v1/oauth2/token我也将客户端ID和密码ID更改为实时ID。

在仪表板中还有其他事项可以在实时模式下设置我的帐户吗?

我在代码中使用curl。

    protected $mode = 'PROD'; 

    function getNewToken()
    {
        $url = "https://api.sandbox.paypal.com/v1/oauth2/token"; 

        if ($this->mode == 'PROD')
            $url = "https://api.paypal.com/v1/oauth2/token";

        $token = new ModelAPIToken();
        $token->set('app', 'test-paypal');

        if ($this->mode == 'PROD')
            $token->set('app', 'prod-paypal');

        $token->select();

        $data = 'grant_type=client_credentials'; 

        $curlManager = new Curl();
        $curlManager->setUrl($url); 
        $curlManager->addToHttpHeader('Accept-Language: en_US');
        $curlManager->setCurlOpt(CURLOPT_USERPWD, $token->get('user_key') . ":" . $token->get('user_secret')); 
        $curlManager->execute($data); 
        $response = $curlManager->getResponse();

        preg_match('#"access_token":"(.*)","token_type"#', $response, $match);
        $access_token = $match[1];
        $token->set('access_token', $access_token);
        $token->save();
    }

0 个答案:

没有答案