Paypal:从沙盒上线
Posted
技术标签:
【中文标题】Paypal:从沙盒上线【英文标题】:Paypal: going Live from sandbox 【发布时间】:2015-02-10 00:11:49 【问题描述】:我已经对此进行了一段时间的头脑风暴,最后我决定在这里提出一个问题。
我正在使用 PayPal-PHP-SDK (restAPI) 处理付款。而且我无法让它进入实时端点(api.paypal.com)并且总是进入沙盒(api.sandbox.paypal.com)
Progress:使用沙盒凭据(clientId 和 clientSecret) 'bootstarp.php' 和 'mode' 在 'sdk_config.ini' 中设置为 'sandbox'成功完成了多个沙盒交易并完成了项目的所有其他部分。现在唯一的部分就是让它上线,这实际上是该项目的致命弱点。
我的尝试:我已将沙盒凭据替换为来自客户端的实时凭据。他从https://developer.paypal.com/webapps/developer/applications/myapps 获得,然后在应用程序下点击'show' Live Credentials。我还在 'sdk_config.ini' 中将 mode 更改为 live。但它仍然将我带到沙盒端点。
编辑:在 bootstarp.php 中创建 api 上下文时,我还设置了一种模式,代码如下。
$apiContext->setConfig(
array(
'mode' => 'live',
'http.ConnectionTimeOut' => 30,
'log.LogEnabled' => true,
'log.FileName' => '../PayPal.log',
'log.LogLevel' => 'FINE',
'validation.level' => 'log'
)
);
任何人都可以建议我在这里缺少什么,因为我没有错误可以调试并进一步查看。如需任何帮助或建议,请提前致谢。
【问题讨论】:
【参考方案1】:你是否改变了 bootstrap.php 中的模式?看来您可以使用 bootstrap.php 或 sdk_config.ini 文件中的配置,但不能同时使用两者。如果您将 sdk_config.ini 路径注释掉如下(来自 bootstrap.php 文件),请确保将模式设置为存在于 bootstrap.php 文件中
// Register the sdk_config.ini file in current directory
// as the configuration source.
/*
if(!defined("PP_CONFIG_PATH"))
define("PP_CONFIG_PATH", __DIR__);
*/
【讨论】:
刚才试过了,还是需要沙箱。【参考方案2】:这可能更适合作为对 Mike Miller 解决方案的评论,但我没有足够的代表,抱歉。
我在五分钟前从 Paypal API 沙盒迁移到 live,使用您的问题和 Mike 的回答来获取有关如何执行此操作的信息。
我唯一改变的是 bootstrap.php 中 clientId 和 clientSecret 的值,以及 mode(从“沙盒”到'live'),就像你在问题中提出的那样。根据 Mike 的回答,我根本没有编辑 'sdk_config.ini' 文件,并且无论如何都注释掉了路径。
我注意到您将“bootstrap.php”文件称为“bootstarp.php” - 这与它没有任何关系,是吗?
【讨论】:
【参考方案3】:我遇到了同样的问题,但我无法解决。
我并不为我的解决方案感到自豪,因为它一点也不优雅,但它开始销售了。
我修改了文件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";
【讨论】:
以上是关于Paypal:从沙盒上线的主要内容,如果未能解决你的问题,请参考以下文章