问题标签 [braintree]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Braintree 支付网关 `confirm_payment_url'
我在尝试将braintree gem 合并到我的rails 3 应用程序时遇到错误。真正奇怪的是,我能够成功地将它安装在我系统上的一个应用程序中,然后当我尝试在另一个应用程序上运行它时出现以下错误:
这是我正在使用的默认代码:
这是付款控制器
什么类型的更改可能会产生这种结果,其中一个 rails 应用程序会识别此方法,而另一个不会?真的在这个问题上摸不着头脑。谢谢你的帮助。
ruby-on-rails - Rails 使用变量查找条件
我正在使用 Braintree 在我的 Rails 应用程序中管理订阅。
我有一个订阅模型,它存储了 Braintree 客户 ID 和订阅 ID。
我想在我的订阅模型中过滤活动订阅。到目前为止我有
但是现在我想使用@active_subscriptions 中的订阅ID 来查找本地订阅模型中具有相同订阅ID 的所有对象,并将其放入@local_active_subscriptions 等变量中。
我必须这样做的原因是使用本地信息来访问 Braintree::Address 并且只提取活动地址。
谢谢您的帮助。
jquery - 如何通过 AJAX 将表单数据提交到 Braintree 透明重定向?
在这里使用 Python 和 JQuery..
我们之前在验证(JQuery 插件)调用中使用普通form.submit();
提交submitHandler
。这被提交到 Braintree 的透明重定向 url,redirect-to 设置为我们服务器上的 GET 处理程序。我们进行确认,然后在我们的处理程序中进行另一个重定向。如果提交的数据没有通过braintree(比如一张坏信用卡),那么我们<div id="error">errormessage</div>
在处理程序的响应中向a 写入一些html,并将其插入到用户的页面中。
问题是,如果我们的处理程序中出现错误,会产生 500 状态码,一切都会陷入困境,并且用户的页面会出现不良行为。
我希望能够处理来自我们的处理程序的 500 响应,如果它发生的话。
我在想我可以使用statusCode
jQuery 的 AJAX 的属性来做到这一点。
这是我尝试过的(在submitHandler
):
然后我故意在我们的处理程序中引发错误以强制 500。
但是我的 ajax 提交到 Braintree url 不起作用。但是,form.submit();
效果很好。
我究竟做错了什么?我认为可以通过这样的 AJAX 提交表单并产生相同的结果是错误的吗?
FWIW,我们为我们的 html 表单提供了许多属性,如下所示:
编辑:
在阅读了有关 ajax 的更多信息后,我意识到我的设置无法正常工作的可能原因是因为它调用了另一个域(Braintree 的),违反了相同的来源策略。所以浏览器没有执行它。
来自:http ://api.jquery.com/jQuery.ajax/
由于浏览器安全限制,大部分“Ajax”请求都受同源策略的约束;请求无法从不同的域、子域或协议成功检索数据。
python - TemplateSyntaxError:paypal 模板中没有名为 Braintree 的模块?
我正在制作一个销售产品的项目,我想在我的 django 中使用贝宝付款。但我收到了这个错误:
“billing_tags”不是有效的标签库:ImportError raise loading loading billing.templatetags.billing_tags:没有名为 Braintree 的模块
在我的settings.py
我已经'paypal.standard.ipn'
放入INSTALLED_APPS
和PAYPAL_RECEIVER_EMAIL
.
当我检查我的python shell时..
这意味着,它正在工作......
在我的urls.py
,我有这个:
在我的views.py中:
我的模板pay_pay.html
只有这个:
我认为问题在于呈现pay_pay.html
我的观点......为什么我得到这个错误:
“billing_tags”不是有效的标签库:ImportError raise loading loading billing.templatetags.billing_tags:没有名为 Braintree 的模块
有人知道我的情况吗?
c# - 无法测试的 Braintree API:我应该更改源代码还是单独包装每个类?
我正在使用适用于 .NET 的 Braintree API 来处理付款。他们的业务在处理付款方面做得很好,API 包装器可以直接使用。但是,提供的 API 包装器在仔细调查或使用更频繁时开始迅速失效;例如,它包含 hand-rolled enum
s。我的问题来自对使用此包装器的代码进行单元测试。
为了做到这一点,我基本上需要模拟我自己的“假”Braintree 网关,其中包含一些已知值,在请求时生成错误等。我的攻击计划是覆盖 Braintree API 包装器的功能,并将请求重新路由到本地内存端点。然后我可以使用依赖注入在运行时链接正确的网关/包装器。
最初,它似乎很顺利:尽管在 API 包装器中犯了违反软件工程的罪,但我需要覆盖的每个方法都被奇迹般地标记为virtual
. 然而,这戛然而止:几乎 API 包装器中的构造函数被标记为internal
. 因此,我既不能继承这些类,也不能随心所欲地创建它们来存储以进行测试。
顺便说一句:我了解internal
构造函数,以及人们合法地想要使用它们的原因。但是,我查看了它的源代码,每个internal
构造函数只执行微不足道的属性分配。因此,我很乐意声称应该遵循不同的编码实践。
所以,我基本上只剩下三个选择:
从头开始编写我自己的 API 包装器。这显然是可行的,并且具有可以产生精心设计的基础设施的优势。然而,缺点太多了,无法简要列出。
从 API 中提取源代码并将其包含在我的解决方案中。我可以将所有
internal
构造函数更改为使它们工作所需的任何内容。缺点是我必须在每个后续 API 包装器发布时重新更新所有这些更改。为我需要在整个 API 包装器中使用的每个对象编写包装器类。这样做的好处是不改变提供的源代码;但是,缺点很大:基本上将包装器中的每个类都重写了 3 次(一个接口、一个 Braintree API 包装器适配器和一个可测试的版本)。
不幸的是,所有这些都很糟糕。我觉得选项 2 可能是最不糟糕的选项,但它让我觉得很脏。有没有人已经解决了这个问题/写了一个更好、更可测试的包装器?如果没有,我是否错过了可能的行动方案?如果不是,这三个选项中的哪一个看起来最不令人反感?
ruby-on-rails - 使用 Braintree 表单构建器的 Rails 通用表单
我有一个类似的表格:
当我尝试将值添加到该文本字段时,我不会这样做。但是,如果我从 form_for 标记中获取构建器,我就可以这样做。任何人都有使用 Braintree 表单生成器的经验?
ruby-on-rails - 测试时将表单发布到外部 URL 失败并出现 RoutingError
我对发布到 Braintree 的透明重定向 API 的 Rails 应用程序进行了集成测试。基本上,测试用有效数据填写表格,并且只期望得到正确的响应。我并不是要测试 Braintree 的每一项验证——只需要一个测试来确保我的表单在大多数情况下都能正常工作。
但是,我的表单抛出了这个错误:
有问题的 form_for 助手看起来像:
相关行似乎是 Braintree::TransparentRedirect.url - 也许在测试环境中这会被截断/丢失相关主机信息?不是这样!为测试输出 page.html 显示以下内容:
<form accept-charset="UTF-8" action="https://sandbox.braintreegateway.com:443/merchants/XXX/transparent_redirect_requests" autocomplete="off" method="post">
那么,为什么测试似乎试图在我自己的服务器上点击 /merchants... 而不是将数据发布到 sandbox.braintreegateway.com,正如表单的操作属性明确指出的那样?
此外,手动复制测试程序(用有效数据填写表格,点击提交)在开发和生产中都有效。
java - 方法名称为 CF 保留字的 Java cfObject
我一直在研究 ColdFusion 中的 Braintree 集成。Braintree 不直接支持 CF,但它们提供了一个 Java 库,到目前为止我所做的一切都运行良好......直到现在。似乎某些对象(尤其是搜索功能)具有无法从 CF 访问的方法,我怀疑这是因为它们是 CF 保留字,例如“is”和“contains”。有没有办法解决这个问题?
抛出的错误:无效的 CFML 构造 ... ColdFusion 正在查看以下文本:是
paypal - 在任意时间以任意金额重复付款?
我们想找到一个支付提供商,让我们做类似于 Hailo 的事情,即:
用户注册并向我们提供他们的信用卡详细信息/授权我们向他们的帐户收费。他们只需要这样做一次。
在 Hailo 的案例中,用户可能在任何时候乘坐出租车并被收取任何金额(在合理范围内)。在我们的例子中,用户可能需要在任何时候完成一项工作,同样需要一张任意金额的发票。
因此,理想情况下,我们可以随时向用户账户收取任何金额,无需进一步授权。这是可能的,因为 Hailo(我相信 Uber)已经实现了它。但是,我不知道他们是使用第三方支付提供商还是自己推出。
像 BrainTree 的定期付款这样的东西接近我们想要的,但不完全是。我们希望能够在任意时间计费,而不是按固定时间表计费。
我们目前最好的选择是使用定期计费,即保存发票,然后在月底一次性收取所有费用。不过,从现金流的角度来看,这并不理想。另一种选择是使用 GoCardless 的可变计费(您要求客户允许每月最多支付 X 英镑),尽管从与人们交谈的情况来看,他们似乎对此很敏感,因为这似乎是一项预先承诺。
我们可以按照自己的方式去做吗?Hailo 和 Uber 等公司是如何做到的?
顺便说一句,我们在英国。
php - 如何处理 BrainTree 中的 Webhook
我正在尝试使用 BrainTree webhook 进行订阅交易,但无法让我的页面进行验证。
来自 BrainTree:https ://www.braintreepayments.com/docs/php/webhooks/destination_verification
当您尝试添加目的地时,我们的服务器将使用名为 bt_challenge 的查询参数向提供的 URL 发出 GET 请求。此查询参数应传递给验证方法。调用此方法的结果应作为响应的主体返回。
首先,我在 NodeJS 中进行了尝试(因为我们的事务以这种方式成功完成):
我的 PHP 页面与 NodeJS 进程通信并将结果放入正文中。一旦这个验证失败,我就直接用 PHP 写了一个测试页面:
但是,这也未能通过验证。不确定哪里出了问题,因为没有验证测试或任何错误迹象。我尝试联系 BrainTree 支持,但没有回复。