如果我依靠braintree进行支付处理,我仍然可以存储哪些信用卡信息,同时仍然符合PCI标准?
我问的原因是,作为一个简单的优化,如果客户已经用信用卡从我的商店购买了东西,我可以向他们展示他们信用卡的最后4位数和卡片类型,而无需制作对BrainTree的API调用.如果他们想要更换卡片或进行购买,我必须拨打电话,但对于那一页,我不会.
问题是,我可以存储:
或者哪里有PCI合规列表"做与否"我可以查看?
我是Braintree API的新手.我正在使用定期付款.为此我正在使用由Braintree提供的Drop-In UI.一切顺利但只显示两个字段:卡号和到期月/年; 和Paypal按钮.它没有显示CVV字段.
我相信CVV字段是可选的,如果我不接受它,交易仍然会通过.但我想知道它为什么不出现?
Braintree的新文档非常有限.我在他们的网站上找不到关于这个问题的很多信息.任何指针都将非常感激.谢谢.
我们正在使用braintree的dropin UI来帮助节省创建自定义支付条目页面的时间.有什么难以理解的是为什么你只能添加新的付款方式而不是删除.我知道能够添加,但如果给定的付款方式存在问题(稍后).它永远存在,因为客户无法删除付款方式.我想删除付款方式的唯一方法就是为我们编写一个自定义UI(从而破坏了使用dropin UI开始的目的).客户是否无法使用dropin UI删除付款方式?
我想收集所有Braintree客户的订阅.当我浏览到网关中的客户页面时,我可以看到他们的订阅,但它似乎不是一种类似于subscriptions存在的方法Braintree::Customer,或者我可以搜索Braintree::Subscriptions的方法customer_id.
我可以通过迂回的方式访问所有客户的订阅,但它们非常慢.例如,我可以检索所有客户的事务,并为每个事务获取subscription_id(如果存在),然后检索具有该ID的订阅.这涉及与Braintree API的大量沟通,我希望有一个更有效的解决方案.
哦,我正在使用rails编程,但问题似乎不是特定于Rails的.
我正在为Django的Braintree整合工作.我遵循了这个指南:
但是,我收到了错误'str' object has no attribute 'get'.
Views.py
from django.shortcuts import render, render_to_response
from django.http.response import HttpResponse
import braintree
braintree.Configuration.configure(braintree.Environment.Sandbox,
"privatekey here",
"merchant key here",
"public key here")
def form(request):
return render_to_response('braintree.html')
def create_transaction(request):
if request.method == 'POST':
print request.POST.get("number")
result = braintree.Transaction.sale({
"amount": "1000.00",
"credit_card": {
"number": request.POST.get("number"),
"cvv": request.POST.get("cvv"),
"expiration_month": request.POST.get("month"),
"expiration_year": request.POST.get("year")
},
"options": {
"submit_for_settlement": True
}
})
if result.is_success:
return "<h1>Success! Transaction ID: {0}</h1>".format(result.transaction.id)
else:
return "<h1>Error: {0}</h1>".format(result.message)
else:
return HttpResponse('no …Run Code Online (Sandbox Code Playgroud) 我正在尝试用我的Apollo Server等待流的结果.我的解析器看起来像这样.
async currentSubs() {
try {
const stream = gateway.subscription.search(search => {
search.status().is(braintree.Subscription.Status.Active);
});
const data = await stream.pipe(new CollectObjects()).collect();
return data;
} catch (e) {
console.log(e);
throw new Meteor.Error('issue', e.message);
}
},
Run Code Online (Sandbox Code Playgroud)
当返回的数据流很小时,这个解析器工作正常,但是当进入的数据较大时,我得到了一个503 (Service Unavailable).我看起来超时发生在30秒左右.我已经尝试过增加我的Express服务器的超时graphQLServer.timeout = 240000;但这并没有什么不同.
我怎样才能解决这个问题?30秒超时来自何处?只有在结果需要更长时间时才会失败.
我正在使用https://github.com/mrdaniellewis/node-stream-collect从流中收集结果.
来自try catch的错误:
I20180128-13:09:26.872(-7)? { proxy:
I20180128-13:09:26.872(-7)? { error: 'Post http://127.0.0.1:26474/graphql: net/http: request canceled (Client.Timeout exceeded while awaiting headers)',
I20180128-13:09:26.872(-7)? level: 'error',
I20180128-13:09:26.873(-7)? msg: 'Error sending request to origin.',
I20180128-13:09:26.873(-7)? time: '2018-01-28T13:09:26-07:00',
I20180128-13:09:26.873(-7)? url: …Run Code Online (Sandbox Code Playgroud) 直接从Braintree的教程复制,您可以使用如下客户ID创建客户端令牌:
gateway.clientToken.generate({
customerId: aCustomerId
}, function (err, response) {
clientToken = response.clientToken
});
Run Code Online (Sandbox Code Playgroud)
我声明var aCustomerId = "customer"但是node.js因错误而关闭
new TypeError('first argument must be a string or Buffer')
Run Code Online (Sandbox Code Playgroud)
当我尝试在没有customerId的情况下生成令牌时,一切正常(尽管我从来没有得到新的客户端令牌,但这是另一个问题).
编辑:这是完整的测试代码:
var http = require('http'),
url=require('url'),
fs=require('fs'),
braintree=require('braintree');
var clientToken;
var gateway = braintree.connect({
environment: braintree.Environment.Sandbox,
merchantId: "xxx", //Real ID and Keys removed
publicKey: "xxx",
privateKey: "xxx"
});
gateway.clientToken.generate({
customerId: "aCustomerId" //I've tried declaring this outside this block
}, function (err, response) {
clientToken = response.clientToken
});
http.createServer(function(req,res){
res.writeHead(200, {'Content-Type': 'text/html'}); …Run Code Online (Sandbox Code Playgroud) 我正在尝试将braintree集成到Nodejs和Javascript中.
我在https://sandbox.braintreegateway.com上创建了一个帐户,现在我正在尝试使用"drop in"集成将我的braintree支付与我的网站集成,我按照网站上给出的所有步骤,我得到了paypal按钮,点击打开一个paypal弹出窗口,我在其中输入我的帐户详细信息,之后它要求就各种条款达成一致.点击同意后说:
"抱歉,我们无法连接到PayPal.请在几分钟后重试.再试一次" 我不知道为什么我会这样做.
看起来像使用Braintree设置我的Paypal配置文件的问题(虽然在沙盒中它并不重要).我按照braintree门户网站的指示尝试按照braintree设置paypal,但没有成功,我仍然在同一个错误消息.
使用的代码来自以下Braintree文档:
https://developers.braintreepayments.com/javascript+node/guides/drop-in#paypal
这个你能帮我吗.
我正在开发一个C2C门户网站,卖家将发布他们的产品,其他人可以购买.我计划将Braintree用于付款流程.现在,一旦付款完成,系统将收取佣金,并应将剩余部分转移给卖方.
我以为我可以使用ACH,但我找不到任何解决方案或要求的文件转移到卖家帐户.
注意:我可以使用Stripe Connect实现相同的功能.提出问题的原因是使用他人拥有的知识.