返回市场
代理工具包

代理工具包

作者:paypal170 星标更新:2025-11-22

项目介绍

PayPal 代理工具包

PayPal 代理工具包使流行的代理框架(包括 OpenAI 的 Agent SDK、LangChain、Vercel 的 AI SDK 和模型上下文协议 (MCP))能够通过函数调用与 PayPal API 集成。它支持 TypeScript,并基于 PayPal API 和 PayPal SDK 构建。

可用工具

PayPal 代理工具包提供以下工具:

发票

  • create_invoice: 在 PayPal 系统中创建新的发票
  • list_invoices: 列出发票,可选分页和过滤
  • get_invoice: 获取特定发票的详细信息
  • send_invoice: 将发票发送给收件人
  • send_invoice_reminder: 发送现有发票的提醒
  • cancel_sent_invoice: 取消已发送的发票
  • generate_invoice_qr_code: 生成发票的二维码

支付

  • create_order: 根据提供的详细信息在 PayPal 系统中创建订单
  • get_order: 获取订单的详细信息
  • pay_order: 处理授权订单的付款
  • create_refund: 处理捕获付款的退款。
  • get_refund: 获取特定退款的详细信息。

争议管理

  • list_disputes: 获取所有开放争议的摘要
  • get_dispute: 获取特定争议的详细信息
  • accept_dispute_claim: 接受争议索赔

运输跟踪

  • create_shipment_tracking: 创建运输跟踪记录
  • get_shipment_tracking: 获取运输跟踪信息
  • update_shipment_tracking: 更新运输跟踪信息

目录管理

  • create_product: 在 PayPal 目录中创建新产品
  • list_products: 列出产品,可选分页和过滤
  • show_product_details: 获取特定产品的详细信息

订阅管理

  • create_subscription_plan: 创建新的订阅计划
  • list_subscription_plans: 列出订阅计划
  • show_subscription_plan_details: 获取特定订阅计划的详细信息
  • create_subscription: 创建新的订阅
  • show_subscription_details: 获取特定订阅的详细信息
  • update_subscription: 更新现有订阅
  • cancel_subscription: 取消活动订阅

报告和洞察

  • list_transactions: 列出交易,可选分页和过滤
  • get_merchant_insights: 获取商家的业务智能指标和分析

TypeScript

安装

除非您想修改该包,否则不需要此源代码。如果您只是想使用该包,请运行:

npm install @paypal/agent-toolkit

要求

  • Node 18+

使用

库需要使用您的账户客户端ID和密钥进行配置,这些信息可以在您的PayPal 开发者仪表板中找到。

该工具包与 Vercel 的 AI SDK 兼容,并且可以作为工具列表传递。更多详情,请参阅我们的示例

import { PayPalAgentToolkit } from '@paypal/agent-toolkit/ai-sdk';
const paypalToolkit = new PayPalAgentToolkit({
  clientId: process.env.PAYPAL_CLIENT_ID,
  clientSecret: process.env.PAYPAL_CLIENT_SECRET,
  configuration: {
    actions: {
      invoices: {
        create: true,
        list: true,
        send: true,
        sendReminder: true,
        cancel: true,
        generateQRC: true,
      },
      products: { create: true, list: true, update: true },
      subscriptionPlans: { create: true, list: true, show: true },
      shipment: { create: true, show: true, cancel: true },
      orders: { create: true, get: true },
      disputes: { list: true, get: true },
    },
  },
});

要使用沙盒模式,在配置中添加上下文。

configuration: {
  context: {
    sandbox: true,
  }
}

初始化工作流

import { PayPalWorkflows, ALL_TOOLS_ENABLED } from '@paypal/agent-toolkit/ai-sdk';
const paypalWorkflows = new PayPalWorkflows({
  clientId: process.env.PAYPAL_CLIENT_ID,
  clientSecret: process.env.PAYPAL_CLIENT_SECRET,
  configuration: {
    actions: ALL_TOOLS_ENABLED,
  },
});

使用

使用工具包

const llm: LanguageModelV1 = getModel(); // 要与 ai-sdk 一起使用的模型
const { text: response } = await generateText({
  model: llm,
  tools: paypalToolkit.getTools(),
  maxSteps: 10,
  prompt: `创建一个价值50美元的定制手工商品订单并获取支付链接。`,
});

环境变量

可以使用以下环境变量:

  • PAYPAL_ACCESS_TOKEN: 您的 PayPal 访问令牌
  • PAYPAL_ENVIRONMENT: 设置为 SANDBOX 以启用沙盒模式,设置为 PRODUCTION 以启用生产模式(默认为 SANDBOX 模式)

本指南解释了如何为 PayPal API 集成生成访问令牌,包括如何查找您的客户端ID和客户端密钥。

前提条件

  • PayPal 开发者账户(用于沙盒)
  • PayPal 商业账户(用于生产)

查找您的客户端ID和客户端密钥

  1. 创建 PayPal 开发者账户

  2. 访问您的凭据

    • 在开发者仪表板中,点击菜单中的 Apps & Credentials
    • 根据需要在 SandboxLive 模式之间切换
  3. 创建或查看应用

    • 要创建新应用,请点击 Create App
    • 给您的应用命名,并选择一个关联的商业账户
    • 对于现有的应用,点击应用名称以查看详细信息
  4. 检索凭据

    • 创建或选择应用后,您会看到一个包含以下内容的屏幕:
      • 客户端ID:您的应用的公共标识符
      • 客户端密钥:私钥(点击“显示”后可见)
    • 安全保存这些凭据,因为它们是生成访问令牌所必需的

生成访问令牌

使用 cURL

curl -v https://api-m.sandbox.paypal.com/v1/oauth2/token \\
  -H \"Accept: application/json\" \\
  -H \"Accept-Language: en_US\" \\
  -u \"CLIENT_ID:CLIENT_SECRET\" \\
  -d \"grant_type=client_credentials\"

CLIENT_IDCLIENT_SECRET 替换为您实际的凭据。对于生产环境,请使用 https://api-m.paypal.com 而不是沙盒 URL。

使用 Postman

  1. 创建一个新的请求到 https://api-m.sandbox.paypal.com/v1/oauth2/token
  2. 将方法设置为 POST
  3. Authorization 下,选择 Basic Auth 并输入您的客户端ID和客户端密钥
  4. Body 下,选择 x-www-form-urlencoded 并添加一个键 grant_type,值为 client_credentials
  5. 发送请求

响应

成功的响应如下所示:

{
  "scope": "...",
  "access_token": "您的访问令牌",
  "token_type": "Bearer",
  "app_id": "APP-80W284485P519543T",
  "expires_in": 32400,
  "nonce": "..."
}

复制 access_token 值以用于您的 Claude Desktop 集成。

令牌详情

  • 沙盒令牌:有效期3-8小时
  • 生产令牌:有效期8小时
  • 建议在过期前实现令牌刷新逻辑

使用令牌与 Claude Desktop

一旦您有了访问令牌,请更新 Claude Desktop 连接器配置中的 PAYPAL_ACCESS_TOKEN 值:

{
  "env": {
    "PAYPAL_ACCESS_TOKEN": "YOUR_NEW_ACCESS_TOKEN",
    "PAYPAL_ENVIRONMENT": "SANDBOX"
  }
}

最佳实践

  1. 安全存储客户端ID和客户端密钥
  2. 实现令牌刷新逻辑以处理令牌过期
  3. 使用环境特定的令牌(测试时使用沙盒,真实交易时使用生产)
  4. 避免在应用程序代码中硬编码令牌

免责声明

AI生成的内容可能不准确或不完整。用户在依赖任何信息之前应独立验证。PayPal 不保证输出准确性,不对因使用而产生的任何决策、行动或后果负责。