🚀 项目说明
本项目旨在提供一个基于Anthropic MCP框架的Daraja接口实现,可与Safaricom的M-Pesa API进行交互。目前主要具备生成访问令牌的功能,还有一些待实现的未来功能,如stk_push、查询交易状态等。用户能通过调用特定工具或使用提供的提示来完成各类支付操作。
🚀 快速开始
本项目可帮助用户方便地与Safaricom的M-Pesa服务进行集成,实现多种支付功能。以下是一些示例代码,展示如何使用本项目的部分功能:
示例代码
token = get_access_token()
print(f"Generated access token: {token}")
workflow_id = "your_workflow_id"
doc_content = "待处理的文档内容"
result = process_document(workflow_id, doc_content)
print(f"Document processing result: {result}")
✨ 主要特性
- 提供基于Anthropic MCP框架的Daraja接口实现,与Safaricom的M-Pesa API交互。
- 目前可生成访问令牌,未来还有更多功能待实现。
- 提供多种支付工具和提示,方便用户完成支付操作。
- 具备文档处理工具和提示,可进行数据处理。
📦 安装指南
文档未提供安装步骤,故跳过该章节。
💻 使用示例
基础用法
以下是一些使用本项目工具和提示的基础示例:
支付工具
- stk_push:发起M-Pesa STK推送请求,要求客户在手机上授权付款。
amount = 100
phone_number = 254712345678
response = stk_push(amount, phone_number)
print(response)
输入参数:
merchant_name = "Example Merchant"
transaction_reference_no = "TRN12345"
amount = 200
transaction_type = "BG"
credit_party_identifier = "254712345678"
response = generate_qr_code(merchant_name, transaction_reference_no, amount, transaction_type, credit_party_identifier)
print(response)
输入参数:
merchant_name
(str): 商家名称/ M-Pesa商家名称
transaction_reference_no
(str): 交易参考号
amount
(int): 销售/交易总金额
transaction_type
(Literal["BG", "WA", "PB", "SM", "SB"]): 交易类型
credit_party_identifier
(str): 付款方标识(移动电话号码、企业电话号码、代理收银机、Paybill、或商家购买商品)
返回值:JSON格式的M-PESA API响应结果,包含二维码数据
支付提示
- stk_push_prompt:生成用于发起M-Pesa STK推送付款请求的提示信息。
phone_number = "254712345678"
amount = 150
purpose = "购买商品"
prompt = stk_push_prompt(phone_number, amount, purpose)
print(prompt)
输入参数:
-
phone_number
(str): 客户的电话号码
-
amount
(int): 需要支付的金额
-
purpose
(str): 支付目的
返回值:格式化的STK推送请求提示字符串
-
generate_qr_code_prompt:生成用于创建M-Pesa QR码付款请求的提示信息。
merchant_name = "Example Merchant"
amount = 250
transaction_type = "BG"
identifier = "254712345678"
reference = "TRN67890"
prompt = generate_qr_code_prompt(merchant_name, amount, transaction_type, identifier, reference)
print(prompt)
输入参数:
merchant_name
(str): 商家名称
amount
(int): 需要支付的金额
transaction_type
(str): 交易类型(BG表示购买商品,WA表示钱包,PB表示Paybill,SM表示发送到个人,SB表示发送到企业)
identifier
(str): 收款人标识(电话号码、企业号码、代理收银机、Paybill、或商家BuyGoods)
reference
(str, optional): 交易参考号。如果未提供,默认生成。
返回值:格式化的QR码生成提示字符串
文档处理工具
- create_source:创建一个从数据源到无结构服务器的连接器,用于数据处理。
connector_name = "Example Source Connector"
source_connector = create_source(connector_name)
print(source_connector)
输入参数:
connector_name = "Example Destination Connector"
destination_connector = create_destination(connector_name)
print(destination_connector)
输入参数:
workflow_name = "Example Workflow"
source_connector_id = "source_connector_id_123"
destination_connector_id = "destination_connector_id_456"
workflow = create_workflow(workflow_name, source_connector_id, destination_connector_id)
print(workflow)
输入参数:
-
workflow_name
(str): 工作流的名称
-
source_connector_id
(str): 源连接器的唯一标识符
-
destination_connector_id
(str): 目标连接器的唯一标识符
返回值:包含工作流ID和状态(成功或失败)的结果
-
delete_workflow:删除指定ID的工作流。
workflow_id = "workflow_id_789"
status = delete_workflow(workflow_id)
print(status)
输入参数:
workflow_id
(str): 要删除的工作流的唯一标识符
返回值:删除操作的状态信息
文档处理提示
- process_document:使用工作流处理文档。
workflow_id = "your_workflow_id"
doc_content = "待处理的文档内容"
result = process_document(workflow_id, doc_content)
print(result)
输入参数:
workflow_id
(str): 用于处理文档的工作流ID
document_content
(str): 待处理的文档内容
返回值:包含处理结果的状态信息
高级用法
文档未提供高级用法相关内容,故跳过该部分。
📚 详细文档
返回值格式
所有API调用均返回JSON对象,如下所示:
{
"status": "success",
"message": "操作完成。",
"data": {}
}
错误处理
如果发生错误,API将返回包含错误详细信息的状态码和消息。
📄 许可证
本项目采用MIT License协议。
🔗 其他信息