我已经集思广益了一段时间,最后我决定在这里提出一个问题。
我正在使用 PayPal-PHP-SDK(restAPI)来处理付款。我无法进入实时终端( api.paypal.com )并且总是去沙箱( api.sandbox.paypal.com )
进度:使用沙盒凭据( clientId 和 clientSecret ) ' bootstarp.php' '模式' 在&#中设置为 '沙盒' 39; sdk_config.ini'我已成功完成多个沙箱交易并完成了项目的所有其他部分。现在唯一的部分就是让它生效,事实上它已经成为该项目的致命弱点。
我尝试了什么:我已将沙盒凭据替换为来自客户端的实时凭据。他是从https://developer.paypal.com/webapps/developer/applications/myapps获得的,然后在应用下点击'显示'实时证书。我还将 模式 更改为' sdk_config.ini'中的 直播 。但它仍然需要我到沙箱端点。
编辑:在bootstarp.php中创建api上下文时,有一种模式,我也设置了生存,代码如下。
$apiContext->setConfig(
array(
'mode' => 'live',
'http.ConnectionTimeOut' => 30,
'log.LogEnabled' => true,
'log.FileName' => '../PayPal.log',
'log.LogLevel' => 'FINE',
'validation.level' => 'log'
)
);
任何人都可以建议我在这里缺少什么因为我没有错误调试和进一步看。如有任何帮助或建议,请提前致谢。
答案 0 :(得分:1)
您是否在bootstrap.php中更改了模式?您似乎可以使用bootstrap.php中的配置或sdk_config.ini文件中的配置,但不能同时使用两者。如果你有如下所示的sdk_config.ini路径(来自bootstrap.php文件),请确保将模式设置为livestrap.php文件中的生存模式
// Register the sdk_config.ini file in current directory
// as the configuration source.
/*
if(!defined("PP_CONFIG_PATH")) {
define("PP_CONFIG_PATH", __DIR__);
}
*/
答案 1 :(得分:0)
这可能更适合作为Mike Miller解决方案的评论,但我没有足够的代表,抱歉。
我在五分钟前从Paypal API沙箱移动到现场,使用您的问题和Mike的答案获取有关如何操作的信息。
我改变的唯一内容是bootstrap.php中 clientId 和 clientSecret 的值,以及模式(来自'就像你在问题中提出的那样,沙盒'生活')。我没有编辑' sdk_config.ini'根据迈克的回答,文件根本就被注释掉了。
我注意到你指的是' bootstrap.php'归档为' bootstarp.php' - 这与它没有任何关系,是吗?
答案 2 :(得分:0)
我有同样的问题,我无法解决。
我并不以我的解决方案为荣,因为它根本不优雅,但它开始销售。
我修改了文件PayPalConstants.php
(位于...\PayPal-PHP-SDK\paypal\rest-api-sdk-php\lib\PayPal\Core\PayPalConstants.php
)
我刚刚更改了实时路线的沙箱路线:
const REST_SANDBOX_ENDPOINT = "https://api.paypal.com/";
const OPENID_REDIRECT_SANDBOX_URL = "https://www.paypal.com/webapps/auth/protocol/openidconnect";