【问题标题】:How to get "balance transactions" from Stripe API via UrlFetchApp如何通过 UrlFetchApp 从 Stripe API 获取“余额交易”
【发布时间】:2020-06-12 15:36:21
【问题描述】:

我正在尝试使用 Google Apps 脚本应用从 Stripe API“余额交易对象”获取交易详情。我研究了另一个问题来获取我的代码:

How to integrate Stripe payments with Google Apps Script

我已经阅读了以下 Strip 文档:

https://stripe.com/docs/api/balance_transactions

我的代码是:

function callStripe() {
  var url = "https://api.stripe.com/v1/balance_transactions";

  var params = {
    method: "GET",
    headers: {Authorization: "Basic " + Utilities.base64Encode("sk_test_XXX:")},
    payload: {id: "txn_1GryACFHk3f0sLjYo9FDDSM1", source: "ch_1GryABFHk3f0sLjY88wmWPFy"}
  };
  var res = UrlFetchApp.fetch(url, params);
  Logger.log(res.getContentText())
}

当我运行该函数时,出现以下错误:

异常:https://api.stripe.com 的请求失败,返回代码 404。截断的服务器响应:{“错误”:{“消息”:“无法识别的请求 URL(POST:/v1/balance_transactions)。请参阅https://stripe.com/docs 或者我们可以http 的帮助...(使用 muteHttpExceptions 选项检查完整响应)(第 59 行,文件“Stripe”)

第 59 行指的是var res = UrlFetchApp.fetch(url, params);

【问题讨论】:

  • 为什么在尝试执行 GET 请求时发送有效负载?
  • 哦,那是不同的,它在我删除有效负载后工作。对不起,我是编码的新手,非常感谢!
  • 不用担心,我已添加此信息作为答案 - UrlFetchApp 假设您想发出 POST 请求,因为您添加了 payload,因此实际请求已更改

标签: google-apps-script urlfetch stripe-payments


【解决方案1】:

问题

Stripe API 请求返回以下错误消息和404 HTTP 代码:

“无法识别的请求 URL(POST:/v1/balance_transactions)”

解决方案

从高级fetch() 方法选项中删除payload 参数。 GET 请求不能有正文(这是payload 参数所代表的),但UrlFetchApp 假定如果提供了有效负载,那么开发人员实际上会尝试发出 POST 请求并相应地更改方法。

参考

  1. 条带化 API reference
  2. GET方法reference
  3. POST方法reference
  4. fetch() 方法 reference

【讨论】:

    猜你喜欢
    • 2019-10-31
    • 2020-12-29
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2017-09-21
    • 2014-08-21
    • 2021-07-01
    相关资源
    最近更新 更多