google-apps-script - 在谷歌应用脚本中创建一个条带令牌
问题描述
我正在尝试使用 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)
解决方案
当我看到官方文档时,示例 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 的回复来看,每个值都必须是字符串类型。
参考:
推荐阅读
- kotlin - 如何将Object类型的Observable设置为接口中方法的返回值
- asp.net-mvc - Internet Explorer 中的防伪令牌问题
- html - 在 html 中删除移动视图中的额外空白
- json - 如何使用 jq 更新 json 文档中的单个整数?
- reactjs - 当用户从反应 js 应用程序中的不同选项卡返回页面时调用函数
- ag-grid - 有人可以帮助我使用 ag-grid 的 tabToNextCell 方法的默认代码吗
- javascript - 动态表的可排序列(使用 DataTable 制作)
- laravel - 如何重置 Vue 组件?
- python - parts = func_name.split('.') TypeError: a bytes-like object is required, not 'str'
- c++ - CMake - 输出目录结构和 QML 模块