PayPal_Adaptive :: CURLRequest()的声明应该与PayPal :: CURLRequest()的声明兼容

时间:2013-01-27 07:49:19

标签: php paypal

当我尝试创建invoice时,我收到上述错误.Invoice正在成功创建,但上述错误不会发生。

我发现了这个,但它不起作用 - Declaration of Methods should be Compatible with Parent Methods in PHP 这是函数 -

class PayPal
{
    .
    .
    .
    /**
     * Send the API request to PayPal using CURL
     *
     * @access  public
     * @param   string  NVP string
     * @return  string
     */
    function CURLRequest($Request)
    {
        $curl = curl_init();
                // curl_setopt($curl, CURLOPT_HEADER,TRUE);
                curl_setopt($curl, CURLOPT_VERBOSE, 1);
                curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
                curl_setopt($curl, CURLOPT_TIMEOUT, 30);
                curl_setopt($curl, CURLOPT_URL, $this->EndPointURL);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($curl, CURLOPT_POSTFIELDS, $Request);

        if($this->APIMode == 'Certificate')
        {
            curl_setopt($curl, CURLOPT_SSLCERT, $this->PathToCertKeyPEM);
        }

        $Response = curl_exec($curl);       
        curl_close($curl);
        return $Response;   
    }

    .
    .
}

class PayPal_Adaptive extends PayPal
    {
        .
        .
        .   
        /**
         * Send the API request to PayPal using CURL
         *
         * @access  public
         * @param   string $Request
         * @param   string $APIName
         * @param   string $APIOperation
         * @return  string
         */
        function CURLRequest($Request, $APIName, $APIOperation)
        {
            $curl = curl_init();
                    curl_setopt($curl, CURLOPT_VERBOSE, 1);
                    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
                    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
                    curl_setopt($curl, CURLOPT_URL, $this -> EndPointURL . $APIName . '/' . $APIOperation);
                    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
                    curl_setopt($curl, CURLOPT_POSTFIELDS, $Request);
                    curl_setopt($curl, CURLOPT_HTTPHEADER, $this -> BuildHeaders(false));

            if($this -> APIMode == 'Certificate')
            {
                curl_setopt($curl, CURLOPT_SSLCERT, $this -> PathToCertKeyPEM);
            }

            $Response = curl_exec($curl);       
            curl_close($curl);
            return $Response;
        }
        .
        .
    } // End Class PayPal_Adaptive

我已将所有参数更改为相同的数字以及相同的默认值但似乎不起作用。 系统使用自定义错误处理程序。 我也试过这个 - error_reporting(E_ALL & ~(E_NOTICE | E_DEPRECATED | E_STRICT));

我已从here下载此库。

感谢。

1 个答案:

答案 0 :(得分:5)

看起来你必须使用我的PHP class library for PayPal .. ??

我在当前的本地版本中修复了此问题,但在发布官方更新之前,我还有其他一些要更新的内容。

要解决此问题,请将该功能的开头行设置为以下内容...

function CURLRequest($Request = '', $APIName = '', $APIOperation = '')
{

}

根据您使用的我的图书馆版本,可能还有PayPal Here,PayFlow和PayPal Access的其他扩展类。如果您有这些,只需对这些扩展类中的CURLRequest函数进行相同的更改,以便它在任何地方都匹配。

这将取消通知。