Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点/fastify不支持的媒体类型出现错误:application/x-www-form-urlencoded_Javascript_Node.js_Paytm_Fastify_Fastify Multipart - Fatal编程技术网

Javascript 节点/fastify不支持的媒体类型出现错误:application/x-www-form-urlencoded

Javascript 节点/fastify不支持的媒体类型出现错误:application/x-www-form-urlencoded,javascript,node.js,paytm,fastify,fastify-multipart,Javascript,Node.js,Paytm,Fastify,Fastify Multipart,index.js fastify.get("/paynow", (request, reply) => { let data = { TXN_AMOUNT: '10', // request amount ORDER_ID: 'ORDER_123455', // any unique order id CUST_ID: 'CUST_1238w4' // any unique customer id } // create Paytm Paym

index.js

fastify.get("/paynow", (request, reply) => {
let data = {
  TXN_AMOUNT: '10', // request amount
  ORDER_ID: 'ORDER_123455', // any unique order id 
  CUST_ID: 'CUST_1238w4' // any unique customer id      
}

// create Paytm Payment
paytm.createPayment(config, data, function (err, data) {
  if (err) {
    // handle err
  }

  //store the url and checksum
  let url = data.url;
  let checksum = data.checksum;

  // delete it from data object
  delete data.url;
  delete data.checksum;

  /* Prepare HTML Form and Submit to Paytm */
  reply.type('text/html');
  reply.raw.writeHead(200, { 'Content-Type': 'text/html' });
  reply.header('Content-Type', 'application/x-www-form-urlencoded');
  reply.header("Access-Control-Allow-Origin", "*");
  reply.header("Access-Control-Expose-Headers", "Content-Range");
  reply.header(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept, Authorization"
  );
  reply.raw.write('<html>');
  reply.raw.write('<head>');
  reply.raw.write('<title>Merchant Checkout Page</title>');
  reply.raw.write('</head>');
  reply.raw.write('<body>');
  reply.raw.write('<center><h1>Please do not refresh this page...</h1></center>');
  reply.raw.write('<form method="post" action="' + url + '" name="paytm_form">');
  for (var x in data) {
    reply.raw.write('<input type="hidden" name="' + x + '" value="' + data[x] + '">');
  }
  reply.raw.write('<input type="hidden" name="CHECKSUMHASH" value="' + checksum + '">');
  reply.raw.write('</form>');
  reply.raw.write('<script type="text/javascript">');
  reply.raw.write('document.paytm_form.submit();');
  reply.raw.write('</script>');
  reply.raw.write('</body>');
  reply.raw.write('</html>');
  reply.raw.write('ok')
  reply.raw.end();
 });

});

fastify.post('/true', (request, reply) => {
console.log('*')
 paytm.validate(config, request.body, function (err, data) {
   console.log(data)
   if (err) {
     // handle err
     console.log(err)
  }

   if (data.status == 'verified') {
     // mark payment done in your db
   }
  });
 });
fastfy.get(“/paynow”,(请求、回复)=>{
让数据={
TXN_金额:'10',//请求金额
订单ID:'订单123455',//任何唯一的订单ID
客户ID:'CUST_1238w4'//任何唯一的客户ID
}
//创建Paytm支付
createPayment(配置、数据、函数(错误、数据){
如果(错误){
//处理错误
}
//存储url和校验和
设url=data.url;
设checksum=data.checksum;
//从数据对象中删除它
删除data.url;
删除数据。校验和;
/*准备HTML表格并提交给Paytm*/
reply.type('text/html');
reply.raw.writeHead(200,{'Content-Type':'text/html'});
reply.header('Content-Type','application/x-www-form-urlencoded');
reply.header(“访问控制允许来源”、“*”);
reply.header(“访问控制公开头”、“内容范围”);
答复.标题(
“访问控制允许标头”,
来源,X请求,内容类型,接受,授权
);
回复。原始。填写(“”);
回复。原始。填写(“”);
回复.raw.write('Merchant Checkout Page');
回复。原始。填写(“”);
回复。原始。填写(“”);
reply.raw.write('请不要刷新此页面…');
回复。原始。填写(“”);
用于(数据中的var x){
回复。原始。填写(“”);
}
回复。原始。填写(“”);
回复。原始。填写(“”);
回复。原始。填写(“”);
reply.raw.write('document.paytm_form.submit();');
回复。原始。填写(“”);
回复。原始。填写(“”);
回复。原始。填写(“”);
reply.raw.write('ok')
reply.raw.end();
});
});
fastfy.post('/true',(请求、回复)=>{
console.log(“*”)
paytm.validate(配置、请求.body、函数(错误、数据){
console.log(数据)
如果(错误){
//处理错误
console.log(错误)
}
如果(data.status==“已验证”){
//在db中标记付款完成
}
});
});
Paynow API工作正常,但当它重定向到/true路由时,会出现错误

{“statusCode”:415,“代码”:“FST_ERR_CTP_INVALID_MEDIA_TYPE”,“error”:“Unsupported” 媒体类型,“消息”:“不支持的媒体类型: application/x-www-form-urlencoded“}


我认为这与fastify有关,我真的不知道,因为这是我与fastify的第一个项目。任何帮助都将被告知

Fastify,开箱即用,仅解析
application/json
payload

要管理表单,您需要将这些插件添加到项目中

  • 管理
    应用程序/x-www-form-urlencoded
  • 管理多部分/表单数据(又称文件上载)

看起来媒体类型
应用程序/x-www-form-urlencoded
不受支持我也尝试过没有它,但同样的错误尝试过没有什么?那没有道理