如何解决哪些Braintree业务对象ID可以提供给最终用户
Braintree API将各种内部ID返回到业务对象,包括Subscription
,Plan
,PaymentMethod
等ID。与最终用户的应用程序共享这些ID(在用户设备上运行的前端代码)时是否存在任何安全问题? (最终用户不会看到这些ID,但它们会通过电线传输。)
详细示例:
用户将付款方式添加到应用中。 App服务器将请求转发到Braintree,例如:
val result = gateway.paymentMethod.create(
new PaymentMethodRequest()
.customerId(user.billing.get.braintree.customerID)
.paymentMethodNonce(nonce)
.billingAddressId(user.billing.get.braintree.addressID.get)
.options()
.makeDefault(true)
.verifyCard(true)
.failOnDuplicatePaymentMethod(false)
.done()
)
然后按以下方式处理结果:
Option(result.getTarget)
.map {
case card: CreditCard =>
braintreePaymentMethod(
card.getClass.getCanonicalName,card.getToken,card.getimageUrl,card.isDefault,"ending " + card.getLast4
)
}
.getorElse(throw Payments.Exception.Braintree(result.getMessage))
card.getToken
返回界面中付款方式的令牌:
public interface PaymentMethod {
String getToken();
boolean isDefault();
String getimageUrl();
String getCustomerId();
List<Subscription> getSubscriptions();
}
然后由getToken
获取的上述令牌用于检查付款方式是否存在,此外,还用于删除,列出和更新付款方式。
在内部,在该应用中,此令牌还可以用于标识付款方式。
概述:是否存在与用户共享此令牌的安全问题?
解决方法
Braintree标识符和令牌与用户无关或无关。没有理由分享它们。您只需出示卡片的最后4张,以供以后参考。
,与用户共享大脑树标识符没有任何意义。
如果您想为这些付款或地址提供某些功能,则这些应该通过您的api进行。
理想情况下,您不应将Braintree域模型直接暴露给用户(这是几乎所有第三方域模型的标准做法)。您可以在Braintree域模型之上创建自己的域模型。您所有的api都将围绕您的域模型展开,该模型将替代braintree域模型。
,如果必须使用它,那很好。中间件可以用来确保安全。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。