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