POST REFUND 自 2 月 ~10 日以来返回错误 400
POST REFUND returned error 400 since Feb ~10th
我有一个处理一些退款付款的脚本,大约从2 月 10 日。服务器响应 Content-Type 不受支持...即使我的 header Content-Type 看起来确实正确
相同的代码在那个日期之前工作,这让我相信服务器端发生了一些变化,但我最近在 square-connect API 更新日志中没有注意到任何可以解释这个问题的内容。
任何帮助将不胜感激:)
谢谢
见下文JSON 请求和响应。
{"method":"POST",
"headers":
{"Authorization":"Bearer [mypersonalid]",
"Accept":"application/json",
"Content-Type":"application/json"},
"payload":
{"payment_id":"[paymentid]",
"type":"FULL",
"reason":"reason"
}
}"
}
{"type":"bad_request",
"message":"The Content-Type of this request is not supported.
Supported type(s): application/json"
}
由于您使用的是 Google 应用程序脚本,看来您必须使用特殊的 contentType
参数(docs here).这样,Google Apps 脚本就知道将负载序列化为 JSON 而不是多部分表单数据。如果您只是将其指定为 header,Google 将覆盖它。
非常感谢您的意见。解决了!
我已经在参数中添加了 contentType,但它没有用,但我开始收到一个新的错误 'bad json object'。 Si,我刚刚搜索了一下,发现 'payload' 对象的实际编码需要是 "stringify"。请参阅 user1021710 的回答: ("Google Apps Script UrlFetchApp with JSON Payload")
所以在这种情况下,contentType 是必要的,然后对有效负载进行编码。 Google 显然在 2 月中旬左右更改了他们自己的 API,因为代码是相同的并且有效。
谢谢大家!!!
使用 google 应用程序脚本 POST 退款请求的示例基本代码:
var headers = {
"Authorization" : autorization,
"Accept": 'application/json',
"Content-Type": "application/json",
};
var payload = {
"payment_id" : paymentid,
"type" : type,
"reason" : reason,
};
var params = {
"contentType": "application/json",
"headers" : headers,
"method" : "post",
"payload" : JSON.stringify(payload),
};
var url = "https://connect.squareup.com/v1/me/refunds";
paymentsFetch = UrlFetchApp.fetch(url, params);
我有一个处理一些退款付款的脚本,大约从2 月 10 日。服务器响应 Content-Type 不受支持...即使我的 header Content-Type 看起来确实正确
相同的代码在那个日期之前工作,这让我相信服务器端发生了一些变化,但我最近在 square-connect API 更新日志中没有注意到任何可以解释这个问题的内容。
任何帮助将不胜感激:) 谢谢
见下文JSON 请求和响应。
{"method":"POST",
"headers":
{"Authorization":"Bearer [mypersonalid]",
"Accept":"application/json",
"Content-Type":"application/json"},
"payload":
{"payment_id":"[paymentid]",
"type":"FULL",
"reason":"reason"
}
}"
}
{"type":"bad_request",
"message":"The Content-Type of this request is not supported.
Supported type(s): application/json"
}
由于您使用的是 Google 应用程序脚本,看来您必须使用特殊的 contentType
参数(docs here).这样,Google Apps 脚本就知道将负载序列化为 JSON 而不是多部分表单数据。如果您只是将其指定为 header,Google 将覆盖它。
非常感谢您的意见。解决了!
我已经在参数中添加了 contentType,但它没有用,但我开始收到一个新的错误 'bad json object'。 Si,我刚刚搜索了一下,发现 'payload' 对象的实际编码需要是 "stringify"。请参阅 user1021710 的回答: ("Google Apps Script UrlFetchApp with JSON Payload")
所以在这种情况下,contentType 是必要的,然后对有效负载进行编码。 Google 显然在 2 月中旬左右更改了他们自己的 API,因为代码是相同的并且有效。
谢谢大家!!!
使用 google 应用程序脚本 POST 退款请求的示例基本代码:
var headers = {
"Authorization" : autorization,
"Accept": 'application/json',
"Content-Type": "application/json",
};
var payload = {
"payment_id" : paymentid,
"type" : type,
"reason" : reason,
};
var params = {
"contentType": "application/json",
"headers" : headers,
"method" : "post",
"payload" : JSON.stringify(payload),
};
var url = "https://connect.squareup.com/v1/me/refunds";
paymentsFetch = UrlFetchApp.fetch(url, params);