【发布时间】:2020-04-19 11:02:17
【问题描述】:
我没有使用 Javascript 的经验,我一直致力于与 Stripe 的集成。我慢慢能够了解他们的代码是如何工作的,但需要有关如何将结果与表单一起发回以进入我的下一个函数的建议。
这里是可以工作的旧代码,并为单次付款发回“令牌”:
var purchaseButton = document.getElementById('purchase-button');
purchaseButton.classList.add('is-loading');
stripe.createToken(card).then(function (result) {
if (result.error) {
// Inform the customer that there was an error.
var errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
purchaseButton.classList.remove('is-loading');
} else {
// Send the token to your server.
stripeTokenHandler(result.token);
}
});
}
});
function stripeTokenHandler(token) {
// Insert the token ID into the form so it gets submitted to the server
var form = document.getElementById('payment-form');
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'stripeToken');
hiddenInput.setAttribute('value', token.id);
form.appendChild(hiddenInput);
// Submit the form
form.submit();
}
这在帖子中返回了“stripetoken”,我想使用下面的新代码并获得相同的效果,但检索此处描述的 result.paymentMethod:https://stripe.com/docs/js/payment_intents/create_payment_method
这是我与条带通信的新代码,我只需要获取调用的结果信息
var purchaseButton = document.getElementById('purchase-button');
purchaseButton.classList.add('is-loading');
stripe.createPaymentMethod({
type: 'card',
card: card,
})
.then(function (result) {
if (result.error) {
// Inform the customer that there was an error.
var errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
purchaseButton.classList.remove('is-loading');
} else {
// Send the token to your server.
paymentmethod(result.token);
}
});
}
});
function paymentmethod(token) {
// Insert the token ID into the form so it gets submitted to the server
var form = document.getElementById('payment-form');
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'paymentmethod');
hiddenInput.setAttribute('value', token.paymentMethod);
form.appendChild(hiddenInput);
// Submit the form
form.submit();
}
这是我理解 JS 的基本方法。我在想这段代码会返回一个名为“paymentmethod”的帖子对象,其值将是“结果”
我是不是想多了?
【问题讨论】:
标签: javascript python django stripe-payments