🚀 項目說明
本項目旨在提供一個基於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協議。
🔗 其他信息