流星patrickml:Braintree身份验证错误



此命令meteor add patrickml:braintree在流星应用程序目录中运行。

在client.main.js中:
在变量braintree和IDE下的一条弯曲线说"未解决的变量或类型"。

Template.payment.onRendered(function () {
  Meteor.call('getClientToken', function (error, clientToken) {
    if (error) {
      console.log(error); //<---- always prints out
    } else {
    //vvvvvvvvv 
      braintree.setup(clientToken, "dropin", {
        container: "payment-form", // Injecting into <div id="payment-form"></div>
        onPaymentMethodReceived: function (response) {
          var nonce = response.nonce;
          console.log(nonce);
        }
      });
    }
  });
});

在下面的服务器代码中,clientId始终是未定义的。

//server/main.js
'getClientToken': function (clientId) {
    console.log(clientId);  //<--------- undefined
    let generateToken = Meteor.wrapAsync(gateway.clientToken.generate, gateway.clientToken);
    let options = {};
    if (clientId) {
      options.clientId = clientId;
    }
    let response = generateToken(options);
    return response.clientToken;
  }

和服务器控制台打印出来:

召唤方法" getClientToken" AuthenticationError:身份验证错误

任何想法是什么问题以及如何修复它?thx

全面披露:我在Braintree工作。如果您还有其他疑问,请随时联系支持。

配置网关对象时,请确保使用沙盒控制面板中记录的API凭据。这是您可以找到它们的方式:

  1. 登录到沙盒控制面板
  2. 导航到帐户> 我的用户
  3. API键,令牌密钥,加密密钥下,单击查看授权
    • 如果没有出现API键,请单击生成新的API键
  4. 单击 view 在私钥列下方查看您的 public 私有键商人ID ,并且环境

当您拥有它们时,请使用它们来配置网关对象。例如:

var braintree = require("braintree");
var gateway = braintree.connect({
  environment: braintree.Environment.Sandbox,
  merchantId: "replaceWithYourMerchantId",
  publicKey: "replaceWithYourPublicKey",
  privateKey: "replaceWithYourPrivateKey"
});

最新更新