网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

Stripe

2026-03-24 新闻来源:网淘吧 围观:39
电脑广告
手机广告
购买adidas上京东官方旗舰店。

Stripe

通过托管的OAuth认证访问Stripe API。管理客户、订阅、发票、产品、价格,并处理支付。

快速开始

# 列出客户
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/stripe/v1/customers?limit=10')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

基础URL

https://gateway.maton.ai/stripe/{原生API路径}

替换{原生API路径}为实际的Stripe API端点路径。网关会将请求代理到api.stripe.com并自动注入您的OAuth令牌。

上网淘巴领天猫淘宝优惠券,一年省好几千。

认证

所有请求都需要在Authorization头部中包含Maton API密钥:

Authorization: Bearer $MATON_API_KEY

环境变量:将您的API密钥设置为MATON_API_KEY

export MATON_API_KEY="您的API密钥"

获取您的API密钥

  1. 请登录或在maton.ai
  2. 前往maton.ai/settings
  3. 复制你的API密钥

连接管理

在以下地址管理你的Stripe OAuth连接:https://ctrl.maton.ai

列出连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=stripe&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

创建连接

python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'stripe'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

获取连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

响应:

{
  "connection": {
    "connection_id": "c3c82a73-4c86-4c73-8ebd-1f325212fde6",
    "status": "ACTIVE",
    "creation_time": "2026-02-01T06:04:02.431819Z",
    "last_updated_time": "2026-02-10T22:40:01.061825Z",
    "url": "https://connect.maton.ai/?session_token=...",
    "app": "stripe",
    "metadata": {}
  }
}

在浏览器中打开返回的url以完成OAuth授权。

删除连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

指定连接

如果你有多个Stripe连接,请使用Maton-Connection标题:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/stripe/v1/customers')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', 'c3c82a73-4c86-4c73-8ebd-1f325212fde6')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

如果省略,网关将使用默认(最早)的活动连接。

API 参考

所有 Stripe API 端点都遵循此模式:

/stripe/v1/{资源}

余额

获取余额

GET /stripe/v1/balance

响应:

{
  "object": "balance",
  "available": [
    {
      "amount": 0,
      "currency": "usd",
      "source_types": {"card": 0}
    }
  ],
  "pending": [
    {
      "amount": 5000,
      "currency": "usd",
      "source_types": {"card": 5000}
    }
  ]
}

列出余额交易

GET /stripe/v1/balance_transactions?limit=10

客户

列出客户

GET /stripe/v1/customers?limit=10

查询参数:

参数描述
limit结果数量(1-100,默认值:10)
starting_after用于分页的游标
结束于反向分页游标
电子邮件按电子邮件筛选
创建时间按创建日期筛选

响应:

{
  "object": "list",
  "data": [
    {
      "id": "cus_TxKtN8Irvzx9BQ",
      "object": "customer",
      "email": "customer@example.com",
      "name": null,
      "balance": 0,
      "currency": "usd",
      "created": 1770765579,
      "metadata": {}
    }
  ],
  "has_more": true,
  "url": "/v1/customers"
}

获取客户

GET /stripe/v1/customers/{customer_id}

创建客户

POST /stripe/v1/customers
Content-Type: application/x-www-form-urlencoded

email=customer@example.com&name=John%20Doe&metadata[user_id]=123

更新客户

POST /stripe/v1/customers/{customer_id}
Content-Type: application/x-www-form-urlencoded

name=Jane%20Doe&email=jane@example.com

删除客户

DELETE /stripe/v1/customers/{customer_id}

产品

列出产品

GET /stripe/v1/products?limit=10

查询参数:

参数描述
活跃按活跃状态筛选
类型按类型筛选:商品服务

响应:

{
  "object": "list",
  "data": [
    {
      "id": "prod_TthCLBwTIXuzEw",
      "object": "product",
      "active": true,
      "name": "高级套餐",
      "description": "高级订阅",
      "type": "service",
      "created": 1769926024,
      "metadata": {}
    }
  ],
  "has_more": true
}

获取产品

GET /stripe/v1/products/{product_id}

创建产品

POST /stripe/v1/products
Content-Type: application/x-www-form-urlencoded

name=高级套餐&description=高级订阅&type=service

更新产品

POST /stripe/v1/products/{product_id}
Content-Type: application/x-www-form-urlencoded

name=更新套餐&active=true

删除产品

DELETE /stripe/v1/products/{product_id}

价格

列出价格

GET /stripe/v1/prices?limit=10

查询参数:

参数描述
活跃按活跃状态筛选
产品按产品ID筛选
类型筛选:一次性周期性
货币按货币筛选

响应:

{
  "object": "列表",
  "data": [
    {
      "id": "price_1SvtoVDfFKJhF88gKJv2eSmO",
      "object": "价格",
      "active": true,
      "currency": "美元",
      "product": "prod_TthCLBwTIXuzEw",
      "unit_amount": 1999,
      "recurring": {
        "interval": "月",
        "interval_count": 1
      },
      "type": "周期性"
    }
  ],
  "has_more": true
}

获取价格

GET /stripe/v1/prices/{价格ID}

创建价格

POST /stripe/v1/prices
Content-Type: application/x-www-form-urlencoded

product=prod_XXX&unit_amount=1999&currency=usd&recurring[interval]=month

更新价格

POST /stripe/v1/prices/{价格ID}
Content-Type: application/x-www-form-urlencoded

active=false

订阅

列出订阅

GET /stripe/v1/subscriptions?limit=10

查询参数:

参数描述
客户按客户ID筛选
价格按价格ID筛选
状态筛选:活跃已取消逾期等。

响应:

{
  "object": "list",
  "data": [
    {
      "id": "sub_1SzQDXDfFKJhF88gf72x6tDh",
      "object": "subscription",
      "customer": "cus_TxKtN8Irvzx9BQ",
      "status": "active",
      "current_period_start": 1770765579,
      "current_period_end": 1773184779,
      "items": {
        "data": [
          {
            "id": "si_TxKtFWxlUW50cR",
            "price": {
              "id": "price_1RGbXsDfFKJhF88gMIShAq9m",
              "unit_amount": 0
            },
            "quantity": 1
          }
        ]
      }
    }
  ],
  "has_more": true
}

获取订阅

GET /stripe/v1/subscriptions/{subscription_id}

创建订阅

POST /stripe/v1/subscriptions
Content-Type: application/x-www-form-urlencoded

customer=cus_XXX&items[0][price]=price_XXX

更新订阅

POST /stripe/v1/subscriptions/{subscription_id}
Content-Type: application/x-www-form-urlencoded

items[0][id]=si_XXX&items[0][price]=price_YYY

取消订阅

DELETE /stripe/v1/subscriptions/{subscription_id}

发票

列出发票

GET /stripe/v1/invoices?limit=10

查询参数:

参数描述
customer按客户ID筛选
subscription按订阅ID筛选
status筛选条件:draft,open,paid,void,uncollectible

响应:

{
  "object": "list",
  "data": [
    {
      "id": "in_1SzQDXDfFKJhF88g3nh4u2GS",
      "object": "invoice",
      "customer": "cus_TxKtN8Irvzx9BQ",
      "amount_due": 0,
      "amount_paid": 0,
      "currency": "usd",
      "status": "paid",
      "subscription": "sub_1SzQDXDfFKJhF88gf72x6tDh",
      "hosted_invoice_url": "https://invoice.stripe.com/...",
      "invoice_pdf": "https://pay.stripe.com/invoice/.../pdf"
    }
  ],
  "has_more": true
}

获取发票

GET /stripe/v1/invoices/{invoice_id}

创建发票

POST /stripe/v1/invoices
Content-Type: application/x-www-form-urlencoded

customer=cus_XXX

完成发票

POST /stripe/v1/invoices/{invoice_id}/finalize

支付发票

POST /stripe/v1/invoices/{invoice_id}/pay

作废发票

POST /stripe/v1/invoices/{invoice_id}/void

费用

列出费用

GET /stripe/v1/charges?limit=10

查询参数:

参数描述
客户按客户ID筛选
payment_intent按支付意图筛选

响应:

{
  "object": "list",
  "data": [
    {
      "id": "ch_3SyXBvDfFKJhF88g1MHtT45f",
      "object": "charge",
      "amount": 5000,
      "currency": "usd",
      "customer": "cus_TuZ7GIjeZQOQ2m",
      "paid": true,
      "status": "succeeded",
      "payment_method_details": {
        "card": {
          "brand": "mastercard",
          "last4": "0833"
        },
        "type": "card"
      }
    }
  ],
  "has_more": true
}

获取交易

GET /stripe/v1/charges/{charge_id}

创建交易

POST /stripe/v1/charges
Content-Type: application/x-www-form-urlencoded

amount=2000&currency=usd&source=tok_XXX

支付意图

列出支付意图

GET /stripe/v1/payment_intents?limit=10

响应:

{
  "object": "list",
  "data": [
    {
      "id": "pi_3SyXBvDfFKJhF88g17PeHdpE",
      "object": "payment_intent",
      "amount": 5000,
      "currency": "usd",
      "customer": "cus_TuZ7GIjeZQOQ2m",
      "status": "succeeded",
      "payment_method": "pm_1SyXBpDfFKJhF88gmP3IjC8C"
    }
  ],
  "has_more": true
}

获取支付意图

GET /stripe/v1/payment_intents/{payment_intent_id}

创建支付意图

POST /stripe/v1/payment_intents
Content-Type: application/x-www-form-urlencoded

amount=2000&currency=usd&customer=cus_XXX&payment_method_types[]=card

确认支付意向

POST /stripe/v1/payment_intents/{payment_intent_id}/confirm

取消支付意向

POST /stripe/v1/payment_intents/{payment_intent_id}/cancel

支付方式

列出支付方式

GET /stripe/v1/payment_methods?customer=cus_XXX&type=card

获取支付方式

GET /stripe/v1/payment_methods/{payment_method_id}

关联支付方式

POST /stripe/v1/payment_methods/{payment_method_id}/attach
Content-Type: application/x-www-form-urlencoded

customer=cus_XXX

解除关联支付方式

POST /stripe/v1/payment_methods/{payment_method_id}/detach

优惠券

列出优惠券

GET /stripe/v1/coupons?limit=10

获取优惠券

GET /stripe/v1/coupons/{coupon_id}

创建优惠券

POST /stripe/v1/coupons
Content-Type: application/x-www-form-urlencoded

percent_off=25&duration=once

删除优惠券

DELETE /stripe/v1/coupons/{coupon_id}

退款

列出退款

GET /stripe/v1/refunds?limit=10

获取退款

GET /stripe/v1/refunds/{refund_id}

创建退款

POST /stripe/v1/refunds
Content-Type: application/x-www-form-urlencoded

charge=ch_XXX&amount=1000

分页

Stripe 使用基于游标的分页,参数包括starting_afterending_before

GET /stripe/v1/customers?limit=10&starting_after=cus_XXX

响应内容包括:

{
  "object": "list",
  "data": [...],
  "has_more": true,
  "url": "/v1/customers"
}

将最后一项的ID用作starting_after以获取下一页。

代码示例

JavaScript

const response = await fetch(
  'https://gateway.maton.ai/stripe/v1/customers?limit=10',
  {
    headers: {
      'Authorization': `Bearer ${process.env.MATON_API_KEY}`
    }
  }
);
const data = await response.json();
console.log(data.data);

Python

import os
import requests

response = requests.get(
    'https://gateway.maton.ai/stripe/v1/customers',
    headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'},
    params={'limit': 10}
)
data = response.json()
for customer in data['data']:
    print(f"{customer['id']}: {customer['email']}")

注意事项

  • Stripe API 在 POST 请求中使用application/x-www-form-urlencoded格式(而非 JSON)
  • 金额以最小货币单位表示(例如,美元以美分为单位)
  • ID 以特定前缀开头:cus_(客户),prod_(产品),价格_(价格),订阅_(订阅),发票_(发票),扣费_(扣费),支付意向_(支付意向)
  • 时间戳为Unix时间戳
  • 重要提示:使用curl命令时,若URL中包含方括号,请使用curl -g以禁用通配符解析
  • 重要提示:当将curl输出通过管道传递给jq或其他命令时,环境变量(如$MATON_API_KEY在某些shell环境中可能无法正确展开

错误处理

状态码含义
400请求无效或参数错误
401Maton API密钥无效或缺失
402银行卡被拒或需要支付
404未找到资源
429请求频率受限
500Stripe内部错误

故障排除:API密钥问题

  1. 请检查MATON_API_KEY环境变量已设置:
echo $MATON_API_KEY
  1. 通过列出连接来验证API密钥是否有效:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

故障排除:无效的应用名称

  1. 确保你的URL路径以stripe开头。例如:
  • 正确:https://gateway.maton.ai/stripe/v1/customers
  • 错误:https://gateway.maton.ai/v1/customers

资源

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
上网淘巴领天猫淘宝优惠券,一年省好几千。

文章底部电脑广告
手机广告位-内容正文底部
上一篇:Sag 下一篇:Marketing Mode

相关文章

上网淘巴领天猫淘宝优惠券,一年省好几千。

广告  ×

您是本站第223120名访客 今日有65篇新文章/评论