需要设置Braintree \ Configuration :: merchantId(或者需要将accessToken传递给Braintree \ Gateway)

时间:2018-03-15 08:18:55

标签: php paypal braintree braintree-sandbox

现在我收到了错误

Uncaught exception 'Braintree\Exception\Configuration' with message 'Braintree\Configuration::merchantId needs to be set (or accessToken needs to be passed to Braintree\Gateway).

问题是,如果我的商家ID不是其创建子商家的方式,因为我能够在我的信息中心看到子商家帐户,但我打算打电话 这个方法:

$webhookNotification = Braintree\WebhookNotification::parse($sampleNotification['bt_signature'], $sampleNotification['bt_payload']);

它说

Uncaught exception 'Braintree\Exception\Configuration' with message 'Braintree\Configuration::merchantId needs to be set (or accessToken needs to be passed to Braintree\Gateway).

2 个答案:

答案 0 :(得分:0)

完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系 [支持] [支持]

merchant ID是所有Braintree API调用所需的API凭据,以及公钥和私钥。您可以在仪表板中看到没有商家ID的子模板,因为我们的系统会将您对仪表板的登录识别为有效身份验证,而不是依赖于API凭据。

使用我们的SDK时,您需要set up your API Credentials appropriately。您可以按照instructions in our documentation找到帐户的API凭据。我们现在支持class level and instance methods

课程级别示例

Braintree_Configuration::environment('sandbox');
Braintree_Configuration::merchantId('use_your_merchant_id');
Braintree_Configuration::publicKey('use_your_public_key');
Braintree_Configuration::privateKey('use_your_private_key');

实例方法示例

$gateway = new Braintree_Gateway([
    'environment' => 'sandbox',
    'merchantId' => 'use_your_merchant_id',
    'publicKey' => 'use_your_public_key',
    'privateKey' => 'use_your_private_key'
]);

答案 1 :(得分:0)

我用Laravel。就我而言,问题出在配置文件缓存中。由于某些原因,Laravel无法从命令生成配置缓存: php artisan config:cache

我解决了删除配置缓存的问题:

php artisan config:clear

但是在我看来,真正的问题是Laravel配置缓存的生成。

我希望它有用。

更新

我的配置缓存不起作用,因为我没有将env()帮助程序放在配置文件中,而是放在其他文件中(在我的情况下为AppServiceProvider)。 在生产模式下,只能从配置文件中调用.env参数。

  

如果在部署过程中使用config:cache命令,则必须   确保只在您的内部调用env函数   配置文件,而不是应用程序中其他任何地方。