Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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
推荐paypal php sdk版本,提供poodle sslv3 bug并实际运行_Php_Paypal_Paypal Adaptive Payments - Fatal编程技术网

推荐paypal php sdk版本,提供poodle sslv3 bug并实际运行

推荐paypal php sdk版本,提供poodle sslv3 bug并实际运行,php,paypal,paypal-adaptive-payments,Php,Paypal,Paypal Adaptive Payments,我正在使用composer安装paypal SDK的权限和自适应支付。我的partial composer.json是: { "paypal/adaptiveaccounts-sdk-php":"*", "paypal/permissions-sdk-php":"v2.5.106", "paypal/adaptivepayments-sdk-php":"2.*" } } 现在这很好,但是如果我尝试按原样使用它,它会抛出以下错误: PHP Fatal error: Access to unde

我正在使用composer安装paypal SDK的权限和自适应支付。我的partial composer.json是:

{
"paypal/adaptiveaccounts-sdk-php":"*",
"paypal/permissions-sdk-php":"v2.5.106",
"paypal/adaptivepayments-sdk-php":"2.*"
}
}

现在这很好,但是如果我尝试按原样使用它,它会抛出以下错误:

PHP Fatal error:  Access to undeclared static property: PPBaseService::$SDK_NAME in /var/app/current/vendor/paypal/permissions-sdk-php/lib/services/Permissions/PermissionsService.php on line 22
这是因为PPBaseServer类没有这些变量。我发现这是sdk中狮子狗sslv3问题的最新修复中的一个bug

我发现了这个:,它提到了POODLE补丁引入了一个bug,因此您必须将sdk核心重写为sdk核心php:“v1.4.2。My composer.json更改为:

{
"paypal/adaptiveaccounts-sdk-php":"*",
 "paypal/sdk-core-php": "v1.4.2",
  "paypal/permissions-sdk-php":"v2.5.106",
"paypal/adaptivepayments-sdk-php":"2.*"
}
这修复了“访问未声明的静态属性”的问题,但是它重新引入了狮子狗bug

在composer运行后,可以手动更新处理SSLv3问题的类文件。这很好,但我使用composer在AWS上自动加载这些文件

每次发布构建时,它都会覆盖我所做的更改,这些更改需要重新进行。这是生产系统中的一个主要问题

我的问题是,有哪些推荐的sdk版本可以处理POODLE sslv3问题,并且可以在不丢失变量的情况下工作等

编辑 根据PayPal_Martin的建议,我将componer.json修改为:

{
"require": {
    "ext-curl": "*",
    "paypal/adaptiveaccounts-sdk-php":"*",
    "paypal/permissions-sdk-php":"*",
    "paypal/adaptivepayments-sdk-php":"*"
}
}
这将引发以下错误:

PHP Fatal error:  Access to undeclared static property: PPBaseService::$SDK_NAME in /var/app/current/vendor/paypal/permissions-sdk-php/lib/services/Permissions/PermissionsService.php on line 22
PHP致命错误:在第198行的/var/app/current/paypal/Permissions.Class.PHP中找不到类'RequestEnvelope'

责任代码为:

       $requestEnvelope = new RequestEnvelope(); //<<<HERE
    $requestEnvelope -> errorLanguage = self::$ERROR_LANG;
    $request = new GetPermissionsRequest();
    $request -> requestEnvelope = $requestEnvelope;
    $request -> token = $token;

    try {
        $service = new PermissionsService(Configuration::getAcctAndConfig());
        $this -> parseGetPermissionsResponse($service -> GetPermissions($request));
$requestEnvelope=新的requestEnvelope();//令牌=$token;
试一试{
$service=newpermissionservice(配置::getAcctAndConfig());
$this->parseGetPermissionsResponse($service->GetPermissions($request));

此代码部分在不同版本之间保持不变,并使用我以前的定义。

我会这样做。它比PayPal的SDK更容易使用,而且PayPal集成团队中的许多人实际上更喜欢它。

PHP5.3+的最新版本和许可SDK的5.2的最新版本在这里工作正常-

通过composer安装并运行示例,没有出现卷毛狗或缺少类的问题

请记住,缺少的类表示未正确安装SDK/Core SDK

5.3-3.8.107-

5.2-2.6.107-

谢谢,我在下一次代码审查时会记住这一点。:)我想出了一个不可行的解决方案。我在AWS设置中添加了一个部署后步骤,用正确的版本覆盖了不正确的PPHttpConfig.php。解决方案很糟糕,但…根据您的建议结果更新了问题。不适用于我。你能确认这个composer.json文件是否使用了正确的稳定版本吗?有趣的是,在你给PayPal_Martin的#权限url上提供的当前版本中,vendor/composer/autoload_classmap.php文件是空的。我尝试了许多变体,并简化到了你提供的链接中的基本示例。我总是得到由于未填充自动加载的_classmap.php,类“RequestEnvelope”未找到。这有什么问题吗?我花了大约8个小时试图让它正常工作,但除了旧版本的代码