首页 > 解决方案 > 如何通过 UrlFetchApp 从 Stripe API 获取“余额交易”

问题描述

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

如何将 Stripe 支付与 Google Apps 脚本集成

我已经阅读了以下 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);

标签: google-apps-scripturlfetchstripe-payments

解决方案


问题

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

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

解决方案

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

参考

  1. 条纹 API参考
  2. GET 方法参考
  3. POST 方法参考
  4. fetch()方法参考

推荐阅读