astrasoftwares/astrapay 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

astrasoftwares/astrapay

最新稳定版本:v1.2.0

Composer 安装命令:

composer require astrasoftwares/astrapay

包简介

A complete PHP SDK for Safaricom M-Pesa Integration (STK Push, C2B, and B2C).

README 文档

README

AstraPay PHP SDK

AstraPay is a lightweight PHP SDK that simplifies integrating Safaricom M-Pesa STK Push, C2B (Customer to Business), and B2C (Business to Customer) APIs into your web applications. Built and maintained by Astra Softwares, this SDK allows you to initiate secure mobile payments and disbursements with ease.

📦 Installation

Install via Composer:

composer require astrasoftwares/astrapay

Requires PHP >= 7.4

⚙️ Configuration

Initialize the client with your credentials. Depending on the service you are using (STK, C2B, or B2C), different keys are required.

require 'vendor/autoload.php';

use Astrapay\AstraMpesa;

$config = [
    'consumerKey'    => 'YOUR_CONSUMER_KEY',
    'consumerSecret' => 'YOUR_CONSUMER_SECRET',
    'shortcode'      => '174379', // Paybill or Till Number
    'passkey'        => 'YOUR_PASSKEY', // Required for STK Push
    'callbackUrl'    => 'https://yourdomain.com/callback', // Global callback for STK
    'env'            => 'sandbox', // 'sandbox' or 'live'
    
    // Required only for B2C
    'initiatorName'      => 'YOUR_INITIATOR_NAME',
    'securityCredential' => 'YOUR_ENCRYPTED_CREDENTIAL' 
];

$client = new AstraMpesa($config);

🚀 Usage Examples

1. STK Push (M-Pesa Express)

Initiate a payment prompt on the customer's phone.

// Simple usage
$response = $client->pay('254712345678', 100); 

// Advanced usage with custom reference and description
$response = $client->pay(
    '254712345678', 
    100, 
    'Invoice #102', // Account Reference
    'School Fees'   // Transaction Description
);

print_r($response);

2. C2B (Customer to Business)

Handle payments sent directly to your Paybill/Till via the SIM toolkit.

Step A: Register URLs (Run Once) You must tell Safaricom where to send validation and confirmation data.

$client->registerC2BUrls(
    'https://yourdomain.com/mpesa/validation',
    'https://yourdomain.com/mpesa/confirmation'
);

Step B: Simulate C2B (Sandbox Only) Since you cannot use real money in Sandbox, use this to test your confirmation URLs.

$client->simulateC2B(
    '254708374149', 
    1000, 
    'INV/001' // BillRefNumber
);

3. B2C (Business to Customer)

Send money from your business account to a user (e.g., Salaries, Refunds).

$response = $client->b2cPayment(
    '254712345678', 
    500, 
    'BusinessPayment', // Options: SalaryPayment, BusinessPayment, PromotionPayment
    'Refund for Order #20', // Remarks
    'https://yourdomain.com/b2c/timeout', // Queue Timeout URL
    'https://yourdomain.com/b2c/result'   // Result URL
);

print_r($response);

🔐 How to Get M-Pesa API Credentials

To integrate with M-Pesa, you’ll need to create a Safaricom Daraja developer account:

  1. Register on Daraja Portalhttps://developer.safaricom.co.ke
  2. Create an App
  • Log in and click “My Apps” → “Add a New App”
  • Ensure you check the boxes for:
  • Lipa na M-Pesa Sandbox (for STK)
  • M-Pesa Sandbox (for C2B/B2C)
  1. Get your Credentials:
  • Consumer Key & Secret: Found in your App dashboard.
  • Passkey: Generated via the "Simulate" tab in Daraja or sent via email in production.
  • Security Credential (B2C Only): This is an encrypted password. In Sandbox, Safaricom provides a test credential. In Production, you must generate it using the M-Pesa Public Certificate.

🧲 Sample Test Numbers (Sandbox)

Phone Number PIN OTP
254708374149 1111 123456

Use the sandbox environment for development/testing. When moving to production (env => 'live'), ensure your Shortcode is active and approved by Safaricom.

📖 Documentation

🤝 Contribute

Pull requests are welcome! If you find a bug or want a feature added, open an issue or submit a PR.

🧑‍💻 Author

Built with ❤️ by Ishmael Bett 📧 info.astrasoft@gmail.com

📄 License

This project is licensed under the MIT License.

统计信息

  • 总下载量: 12
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 5
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-01

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固