首页 > 解决方案 > 在谷歌应用脚​​本中创建一个条带令牌

问题描述

我正在尝试使用 GAS 创建条带令牌。我的代码在下面

  function createToken(){
  var url = "https://api.stripe.com/v1/tokens";
  
  var payload = {
  "Card": { 
  "Number" : "4242424242424242",
  "Exp_month" : "10",
  "Exp_year": "2021",
  "Cvc": "314",
  }
  };
  
  var options = {
    "method" : "post",
    "payload" : payload
  };

  options.headers = {    
    "Authorization" : "Basic " + Utilities.base64Encode("sk_test_4eC***7dc:")
    };
    
    var res = UrlFetchApp.fetch(url, options);
    Logger.log(res.getContentText())
  }

但是我不断收到以下错误,我错过了什么?

[20-10-22 12:39:19:452 EDT] 异常:对https://api.stripe.com的请求失败,返回代码 400。

截断的服务器响应:{“error”:{“code”:“parameter_missing”,“doc_url”:“https://stripe.com/docs/error-codes/parameter-missing”,“message”:“你必须...(使用 muteHttpExceptions 选项检查完整响应)在 createToken(Code:43:27)

标签: google-apps-scriptstripe-payments

解决方案


当我看到官方文档时,示例 curl 命令如下/

$ curl https://api.stripe.com/v1/tokens \
  -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \
  -d "card[number]"=4242424242424242 \
  -d "card[exp_month]"=10 \
  -d "card[exp_year]"=2021 \
  -d "card[cvc]"=314

当上述示例 curl 转换为 Google Apps 脚本时,它变为如下。

示例脚本(Google Apps 脚本):

var url = "https://api.stripe.com/v1/tokens";
var params = {
  method: "post",
  headers: {
    authorization: "Basic " + Utilities.base64Encode("sk_test_4eC39HqLyjWDarjtT1zdp7dc:")
  },
  payload: {
    "card[number]": "4242424242424242",
    "card[exp_month]": "10",
    "card[exp_year]": "2021",
    "card[cvc]": "314"
  }
};
var res = UrlFetchApp.fetch(url, params);
console.log(res.getContentText())

笔记:

  • OP 的回复来看,每个值都必须是字符串类型。

参考:


推荐阅读