我正在尝试为 Stripe 创建自定义支付表单,并且我想手动对 Stripe 进行 AJAX 调用。 (而不是提交事件)
但是,首先我很确定我将它发布到了错误的地方。但我不知道应该向哪个 URL 发出此帖子请求。
如果我使用的是正确的网址。我收到 405 not allowed
响应。没有关于我的请求有什么问题的信息。
这是我得到的:
Stripe.setPublishableKey('pk_test_12345');
Stripe.card.createToken({
number: ccNum,
cvc: ccCVC,
exp_month: ccMonth,
exp_year: ccYear
}, stripeResponseHandler);
这部分工作正常,给我一个 200 OK 状态,我从服务器得到了一个 token 。
function stripeResponseHandler(status, response) {
console.log('card status: ', status);
console.log('token: ', response.id);
$.ajax({
type: 'POST',
url: 'https://checkout.stripe.com/checkout.js',
headers: {
stripeToken: response.id
},
data: {
number: ccNum,
cvc: ccCVC,
exp_month: ccMonth,
exp_year: ccYear
},
success: (response) => {
console.log('successful payment: ', response);
},
error: (response) => {
console.log('error payment: ', response);
}
})
}
然而,这给了我 405 Not Allowed。端点是一个 .js 文件对我来说似乎有点奇怪。这就是为什么我假设我得到了错误的 URL。
谁能帮我弄清楚如何为 Stripe 付款发出手动发布请求?
最佳答案
免责声明:这是可行的,但这是一种糟糕的做法。不要将其用于实际项目。我需要它用于仅前端测试环境。正如此页面上的其他用户所指出的,您应该在后端执行此操作!
我终于在以下位置找到了一些有用的文档:https://stripe.com/docs/api#create_charge
因为我怀疑我使用的 URL 是错误的。
获得正确的 URL 后,以下 ajax 调用有效:
希望这对其他人也有帮助!大多数答案都是 PHP 或其他后端语言。
$.ajax({
type: 'POST',
url: 'https://api.stripe.com/v1/charges',
headers: {
Authorization: 'Bearer sk_test_YourSecretKeyHere'
},
data: {
amount: 3000,
currency: 'usd',
source: response.id,
description: "Charge for madison.garcia@example.com"
},
success: (response) => {
console.log('successful payment: ', response);
},
error: (response) => {
console.log('error payment: ', response);
}
})
关于javascript - 使用 Jquery AJAX 进行 Stripe 支付? (仅限 JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38819502/