【问题标题】:Production site is popping up sandbox.paypal payment window instead of just paypal.com payment window生产网站弹出 sandbox.paypal 支付窗口,而不仅仅是 paypal.com 支付窗口
【发布时间】:2020-04-24 03:26:36
【问题描述】:

我在网站上有一个贝宝“智能按钮”支付网关。本地测试的沙盒版本似乎工作得很好,但是一旦我投入生产,支付弹出窗口仍然显示 sandbox.paypal.com/etc

我已确保我在 prod 上的 .env 文件具有以下设置:

APP_ENV = production

and

PAYPAL_MODE = live

(当然还有所有的沙盒和 prod 机密以及客户端 ID。我是否遗漏了这里需要的任何 ID?)

我的配置文件夹中有这个 paypal.php(我正在使用 Laravel):

<?php
/**
 * PayPal Setting & API Credentials
 */


if ( env('APP_ENV') == 'local' || env('APP_ENV') == 'staging') {
    return array(
        'client_id' => env('PAYPAL_SANDBOX_CLIENT_ID'),
        'secret' => env('PAYPAL_SANDBOX_SECRET'),
        'settings' => array(
            'mode' => env('PAYPAL_MODE', 'sandbox'),
            'http.ConnectionTimeOut' => 3000,
            'log.LogEnabled' => true,
            'log.FileName' => storage_path() . '/logs/paypal.log',
            'log.LogLevel' => env('PAYPAL_LOG_LEVEL', 'DEBUG'),
        ),
    );
}

if ( env('APP_ENV') == 'production' ) {
    return array(
        'client_id' => env('PAYPAL_PROD_CLIENT_ID'),
        'secret' => env('PAYPAL_PROD_SECRET'),
        'settings' => array(
            //payment mode, 'sandbox' or 'live'
            'mode' => env('PAYPAL_MODE', 'live'),
            'http.ConnectionTimeOut' => 3000,
            'log.LogEnabled' => true,
            'log.FileName' => storage_path() . '/logs/paypal.log',
            'log.LogLevel' => env('PAYPAL_LOG_LEVEL', 'DEBUG'),
        ),
    );
}

然后在我处理付款的控制器中,我添加了这个构造。我认为这可能是我做错了什么,因为我不确定我是否在这里遗漏了什么:

    public function __construct()
    {
        /** PayPal api context **/
        $paypal_conf = \Config::get('paypal');
        $this->_api_context = new ApiContext(new OAuthTokenCredential(
                $paypal_conf['client_id'],
                $paypal_conf['secret'])
        );
        $this->_api_context->setConfig($paypal_conf['settings']);
    }

我不确定这个问题还可能是由哪里引起的,但请告诉我,我可以添加代码!我正在使用 laravel 和 vuejs 堆栈

有什么想法吗?

【问题讨论】:

  • 看看这条评论here
  • HMM 很有趣,我现在就试试,但是每次我在 prod 和 paypal 更新上重建网站时,我不需要重做这个吗? @Maraboc
  • 现在看起来沙盒和该文件中都有常量,我很确定我在配置中做错了什么,不允许网站看到我们正在直播
  • 刚试了没啥影响
  • 您似乎需要在运行时进行一些更基本的调试和打印值才能找到问题。

标签: php laravel vue.js paypal


【解决方案1】:

我解决了这个问题!原来我是在站点布局中导入friggin沙盒API的SDK,而不是普通的非沙盒SDK

叹息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 2022-01-20
    • 2013-06-21
    相关资源
    最近更新 更多