繁体   English   中英

NodeJS Node-Fetch Call Stripe 中的 JSON 错误

[英]JSON error in NodeJS Node-Fetch Call Stripe

出于某种原因,在 node-fetch 中使用条带 API 时出现此错误。 错误:TypeError:无法使用“in”运算符来搜索“signal”

{"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)

任何解决方案表示赞赏

我认为您不能将 String 作为 fetch 参数传递。 我认为它可以是一个 JavaScript 对象。 所以,试试这个:

  1. 将 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 };

  1. 将 params1 作为 fetch 的参数传递

 var res = await fetch(url, params1);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM