- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 JavaScript 并不陌生,但对 Node.js 和后端语言很陌生。我有一个非常简单的问题。
我已经在计算机上安装并设置了 Node.js,并且正在尝试让服务器在我的静态文件和目录与浏览器之间运行,以便能够发送和接收请求。我下载了 Braintree 的免费沙盒(已找到 here )进行练习,以进行一些虚假交易,以便更好地了解其工作原理。
我通过在命令行上运行 npm install -g http-server
来设置本地服务器,然后运行 http-server
来设置它。
然后我在命令行中收到以下消息:
Starting up http-server, serving ./public
Available on:
http://127.0.0.1:8080
http://10.0.1.4:8080
Hit CTRL-C to stop the server
因此,通过此设置...如果我想要执行 get()
和 post()
方法并查看它在我的“服务器”和我的静态文件。我该怎么做呢?例如,如果我要设置 Braintree 的沙盒环境,然后使用 Braintree 网站上的以下代码创建 clientToken
const http = require('http'),
url = require('url'),
fs = require('fs'),
express = require('express'),
braintree = require('braintree');
const gateway = braintree.connect({
environment: braintree.Environment.Sandbox,
merchantId: "xxxxx",
publicKey: "xxxxx",
privateKey: "xxxxx" //blocked out real numbers for privacy
});
这是我为交易创建“客户端 token ”的剩余代码...和 here是我通过 Braintree 网站遵循的指南...
http.createServer((req,res) => {
gateway.clientToken.generate({
},(err, response) => {
if(err){
throw new Error(err);
}
if(response.success){
var clientToken = response.clientToken
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(clientToken);
res.end("<p>This is the end</p>");
} else {
res.writeHead(500, {'Content-Type': 'text/html'});
res.end('Whoops! Something went wrong.');
}
});
}).listen(8080,'127.0.0.1');
所以,我的问题是...如果我想使用 get()
方法生成发送 token 给客户端...我该怎么做?它必须是一个单独的js文件吗?它们将如何联系起来?如果他们在同一个目录中,他们会看到对方吗?
以下是 Braintree 网站上有关如何发送客户端 token 的示例:
app.get("/client_token", function (req, res) {
gateway.clientToken.generate({}, function (err, response) {
res.send(response.clientToken);
});
});
如何将其集成到我当前的代码中并实际工作?如果这些是基本问题,我很抱歉,但我想对此有更好的理解。预先非常感谢!
最佳答案
我对 Braintree 不太了解,但通常你会使用像express.js这样的东西来处理这样的东西。因此,我将通过我拥有的应用程序为您提供一些简单示例。
#!/usr/bin/env node
var http = require('http');
var app = require('../server.js');
var models = require("../models");
models.sync(function () {
var server = http.createServer(app);
server.listen(4242, function(){
console.log(4242);
});
});
这就是启动一切的文件。不用担心模型,它只是同步数据库。
var express = require('express');
var path = require('path');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var app = express();
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
// share public folder
app.use(express.static(path.join(__dirname, 'public')));
require('./router.js')(app);
module.exports = app;
接下来是将所有内容连接在一起的 server.js。 app.use() 行用于添加中间件和 app.use(logger('dev'));设置您要查找的路线记录器。
app.use(express.static(path.join(__dirname, 'public')));共享公共(public)目录中的所有文件,这就是您要寻找的静态文件
var path = require('path');
module.exports = function(app){
//catch
app.get('*', function(req, res){
res.sendFile(path.join(__dirname, '..', 'public', 'index.html'));
});
}
最后一 block 是router.js。这是您放置所有获取和发布路线的地方。一般来说,我发现如果你在示例中看到 app.get 或 app.post ,那里谈论的是 express 的东西。它经常与 Node 一起使用,并且使路由方式更容易。
此外,如果您使用 token ,路线将如下所示。
app.get('/print', checkToken, function(req, res){
print.getPrinters(function(err, result){
response(err, result, req, res);
});
});
function checkToken(req, res, next){
models.Tokens.findOne({value: req.headers.token}, function(err, result){
if(err){
res.status(500).send(err);
}else if(result == null){
console.log(req.headers);
res.status(401).send('unauthorized');
}else{
next();
}
});
}
因此,您想确保任何路线都有一个 token ,您只需将该函数传递给它即可。同样,模型适用于数据库
关于javascript - 关于使用 Node.js 作为 Braintree 的本地服务器有疑问吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42546537/
我想获得 Braintree 信用卡交易的费用金额。有没有办法得到这个? $fee = $charge->transaction->serviceFeeAmount; 我在看: https://dev
有什么方法可以更改 Braintree javascript 生成的托管字段中的占位符文本颜色?我不认为它是 the options 之一你可以传入构造函数。我们的设计在深色背景上,占位符值不可见。
我目前有兴趣使用 Braintree 从一个服务器使用我目前持有的信用卡凭据向另一个支付服务器付款。 目前,当客户输入他的信用卡详细信息时,Braintree Client SDK 会生成支付随机数。
在进行销售交易之前,如何在保险库中重新验证付款方式 [信用卡]。 注:启用 CVV 和 AVS 规则。 场景是: Braintree 保险库中的客户使用保险库中的付款方式 [信用卡] 进行销售交易。
我没找到refund网络 Hook webhooks list . 是 支付网络 Hook 在这种情况下有什么可以帮助我的https://developers.braintreepayments.co
我正在将 Braintree Drop-in v3 集成到一个带有包的角度应用程序中npm i -save braintree-web-drop-in。 然后我找到了包@types/braintree
脑树的默认api速率限制是多少? 因为在一段时间内的非常多的请求之后,我收到了 403(请求过多)异常。 最佳答案 当与您的帐户关联的请求达到不安全级别时引发。如果事件有对其他商家造成负面影响的风险,
我正在将 braintree 与 python 和 swift 一起使用。谁能告诉我如何在 braintree 中重置重试。我收到这个错误 SSLError: HTTPSConnectionPool(
这一定是简单的事情,但我却抓狂了。当我调用这个时 $data = [ 'amount' => '50.00', 'paymentMethodNonce' => 'fak
这一定是简单的事情,但我却抓狂了。当我调用这个时 $data = [ 'amount' => '50.00', 'paymentMethodNonce' => 'fak
每当我通过 Braintree API 或通过他们的沙箱创建交易时,它都会经历许多状态,例如授权、提交结算、已结算......所有这一切大约需要 24 小时。我想问一下,有没有一种方法可以让我在沙箱/
Closed. This question needs to be more focused 。它目前不接受答案。 想改善这个问题吗?更新问题,使其仅通过 editing this post 关注一个
我们正在经营一家与 Braintree 相连的英国 Magento 商店。几个月来,一切都在顺利运行,但突然之间,我们无法在任何连接到 Braintree Sandbox 的临时或本地测试环境中完成订
是否可以从 Braintree dropin UI 中隐藏 Paypal 按钮?我正在考虑为 Paypal 定制 Paypal 按钮(基于客户需求和设计),并希望使用由 Braintree dropi
我正在从 ActiveMerchant 中实现的网关切换到 Braintree 网关。我注意到 ActiveMerchant 中有一个 braintree 网关,还有 braintree 的 brai
调用 [Braintree braintreeWithClientToken 时出现以下错误。 ViewController.m:21:27: Use of undeclared identifier
我正在使用 ASP.NET MVC 4、.NET Braintree Payments API 和 Braintree.js。 这是我为 Braintree 构建的一个简单包装器: public cl
我正在为一个应用程序开发一个迁移项目,该应用程序使用 PayPal Payments Pro API(具有循环计费)处理计费。对于通知,目前正在使用 PayPal IPN。 该服务目前提供通过 Pay
有一种方法可以获取所有卡片的列表: gateway.creditCard.expiringBetween(year1900, year2100, function (err, result) {...
我正在尝试决定如何处理用户订阅了整个月的情况,假设他们订阅了 6/1,直到 6/31。在月中,他们决定取消订阅 (6/15),但在 6/20,他们决定再次重新开始订阅。如果有的话,这在 Braintr
我是一名优秀的程序员,十分优秀!