NodeJS Node-Fetch Call Stripe 中的 JSON 错误
Posted
技术标签:
【中文标题】NodeJS Node-Fetch Call Stripe 中的 JSON 错误【英文标题】:JSON error in NodeJS Node-Fetch Call Stripe 【发布时间】:2021-10-20 10:01:06 【问题描述】:由于某种原因,我在 node-fetch 中使用条带 API 时收到此错误。 错误:TypeError:无法使用“in”运算符在中搜索“信号”
"method":"post","headers":"Content-Type":"application/json","Authorization":"Bearer API KEY","body":"type":"card","card[number]":"4000000000000077","card[exp_month]":"01","card[exp_year]":"2023","card[cvc]":"235"
当我尝试其他解决方案和 JSON.parse() 时,我得到一个无效令牌错误。
这是重现问题的代码:
async function payCreator(product)
var price1 = product.price.replace("$","")
var price2 = price1.replace(".","")
var price3 = price2 *product.quantity
//charge customer
var url = "https://api.stripe.com/v1/payment_methods";
var params1 =
method: "post",
headers: headers,
body: "type": "card", "card[number]": product.card,"card[exp_month]": product.month,"card[exp_year]": product.year,"card[cvc]": product.cvc
;
var params2 = JSON.stringify(params1)
console.log(params2)
var params = params1
var res = await fetch(url, (params2));
var result = await res.json();
return JSON.stringify(result)
感谢任何解决方案
【问题讨论】:
【参考方案1】:我认为您不能将字符串作为 fetch 参数传递。我认为它只能是一个对象。所以,试试这个:
-
字符串化 params1 的 body 属性
var bodyContent = JSON.stringify("type" : "card", "card[number]" : product.card, "card[exp_month]" : product.month, "card[exp_year]" : product.year, "card[cvc]" : product.cvc);
var params1 =
method: "post",
headers: headers,
body: bodyContent
;
-
将 params1 作为 fetch 的参数传递
var res = await fetch(url, params1);
【讨论】:
以上是关于NodeJS Node-Fetch Call Stripe 中的 JSON 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何知道我将被重定向到的 url? [nodejs] [节点获取]
nodeJs 报maximum call stack size exceeded js
NodeJs:- 92% 块资产优化 TerserPlugin 致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足