在 quickbooks 付款 API Apps 脚本上执行 POST 时总是出现错误 "requestId is required"

Always getting error "requestId is required" when doing POST on quickbooks payment API Apps Script

我正在创建一个脚本来处理信用交易,但我总是收到这样的回复:

{
"errors": [
    {
        "code": "PMT-4002",
        "type": "invalid_request",
        "message": "requestId is required.",
        "detail": "requestId",
        "infoLink": "https://developer.intuit.com/v2/docs?redirectID=PayErrors"
    }
  ]
}

我正在尝试找出将“request-id”参数放在请求 body 的什么位置。这是我的代码:

function QBOcreatecharge(){

var token = "TOKEN"
var service = getQuickbooksService();

if (service.hasAccess()) {
var url = 'https://sandbox.api.intuit.com/quickbooks/v4/payments/charges'
var Details = 
{
"amount": "80.00",
"currency": "USD",
"capture": "false",
"token": token
}

var params = {
headers: {
Authorization: 'Bearer ' + service.getAccessToken()
},
contentType:  'application/json',    
method: 'POST',
payload: JSON.stringify(Details),
muteHttpExceptions:true
}
var response = UrlFetchApp.fetch(url, params);

var value = JSON.parse(response.getContentText())
Logger.log(value)
}
else{
var authorizationUrl = service.getAuthorizationUrl();
Logger.log('Open the following URL and re-run the script: %s', authorizationUrl);    
}

}

如何添加requestId参数?我试图将它插入到 link、header 上,但没有任何效果。我在 Google Apps 脚本上使用 UrlFetch。任何帮助将不胜感激。谢谢!

Request-Id是您需要发送的header。例如:

headers: {
  Authorization: 'Bearer ' + service.getAccessToken(),
  'Request-Id': your unique value here 
},

Intuit 将其记录在此处: