【发布时间】:2021-05-22 23:30:00
【问题描述】:
我正在尝试fetch() Stripe 的 API 以使用 React Native 直接从前端创建支付令牌。
我正在这样做:
const genCard = {
'card[number]': "4242424242424242",
'card[exp_month]': "11",
'card[exp_year]': "25,
'card[cvc]': "111"
}
var formBody = []
for (var property in genCard) {
var encodedKey = encodeURIComponent(property)
var encodedValue = encodeURIComponent(genCard[property])
formBody.push(encodedKey + "=" + encodedValue)
}
formBody = formBody.join("&")
const result = fetch("https://api.stripe.com/v1/tokens", {
method: "post",
headers: {
Accept: "application/json",
"Content-Type": "application/x-www-form-urlencoded",
Authorization: "Bearer " + "sk_test_4eC39HqLyjWDarjtT1zdp7dc",
},
body: formBody
}).then(response => response.json())
console.log('logging: \n', genCard, '\n', formBody, '\n', result)
日志输出给了我以下信息:
logging:
{"card[cvc]": "111", "card[exp_month]": "11", "card[exp_year]": "25", "card[number]": "4242424242424242"}
card%5Bnumber%5D=4242424242424242&card%5Bexp_month%5D=11&card%5Bexp_year%5D=25&card%5Bcvc%5D=111
{"_40": 0, "_55": null, "_65": 0, "_72": null}
genCard 包含 Stripe 所需的所有 CC 数据(number、exp_month、exp_year、cvc),formBody 根据我在网上找到的所有文档和指南格式化 CC 数据。但是,我收到的 API 响应不是预期的付款令牌,而是{"_40": 0, "_55": null, "_65": 0, "_72": null}。
我相信我已经遵循了 Stripe 的文档,但是标题数据不正确或正文数据格式错误。
有人熟悉这个过程吗?我错过了什么?
【问题讨论】:
标签: react-native fetch stripe-payments