微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

哪些Braintree业务对象ID可以提供给最终用户

如何解决哪些Braintree业务对象ID可以提供给最终用户

Braintree API将各种内部ID返回到业务对象,包括SubscriptionPlanPaymentMethod等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 举报,一经查实,本站将立刻删除。