服务器端有一个删除支付方式(result = Braintree::PaymentMethod.delete("the_token")
)的功能,但它需要一个支付方式令牌。如何从客户端获取带有 nonce 的付款方式令牌?
编辑:我没有使用 UI 中的下拉菜单。我有一个用户拥有的信用卡的自定义列表(使用 Javascript v3 SDK)。我想要一个按钮来删除卡片。JS SDK 不提供信用卡令牌,只是一个随机数。将客户端可用的数据转换为我可以用来删除服务器上的卡的过程是什么?
edit2:客户端的信用卡列表使用 JavaScript v3 SDK 中的VaultManager。它返回一个fetchPaymentMethodsPayload。
这是客户端代码:
_loadPaymentMethods() {
this.paymentService.getBraintreeToken().then( token => {
this.braintreeClient.create({
authorization: token
}, (clientErr, clientInstance) => {
if (clientErr) {
// Handle error in client creation
return;
}
var options = {
client: clientInstance,
};
this.vaultManager.create(options, (err, vaultInstance) => {
if (err) {
console.log(err);
return;
}
vaultInstance.fetchPaymentMethods({ defaultFirst: true }, (err, paymentMethods) => {
paymentMethods.forEach( paymentMethod => {
if(paymentMethod.type == 'CreditCard') {
this.cards.push(paymentMethod);
if(paymentMethod.default) {
this.card = paymentMethod;
}
}
});
});
});
});
});
}