尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Payment Gateway To Replace Paynow
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A unified payment gateway platform for Zimbabwe and African markets.
ZeePay provides developers with a single API integration to accept payments through multiple payment methods including EcoCash, InnBucks, Omari, Visa, Mastercard, and more.
Payments without the pain.
zeepay/
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── api/v1/ # API endpoints
│ │ │ ├── payments/ # Payment endpoints
│ │ │ ├── refunds/ # Refund endpoints
│ │ │ ├── webhooks/ # Webhook endpoints
│ │ │ ├── payment-methods/
│ │ │ └── simulator/ # Payment simulator
│ │ ├── checkout/ # Hosted checkout pages
│ │ └── dashboard/ # Merchant dashboard
│ ├── lib/
│ │ ├── auth/ # Authentication utilities
│ │ ├── database/ # Database client & schema
│ │ ├── providers/ # Payment provider adapters
│ │ ├── services/ # Business logic services
│ │ ├── utils/ # Utility functions
│ │ └── webhooks/ # Webhook engine
│ └── types/ # TypeScript type definitions
├── sdk/ # JavaScript/TypeScript SDK
├── docs/ # Documentation
│ └── openapi.yaml # OpenAPI specification
└── package.json
git clone <repository-url>
cd zeepay
npm install
.env.local file (see .env.example for reference):NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
JWT_SECRET=your_jwt_secret_here
ENCRYPTION_KEY=your_encryption_key_here
NODE_ENV=development
# Apply the database schema
# Copy the contents of src/lib/database/schema.sql and run it in your Supabase SQL editor
npm run dev
The application will be available at http://localhost:3000
import ZeePay from 'zeepay-sdk';
const zeePay = new ZeePay({
apiKey: 'zp_test_your_api_key_here'
});
const payment = await zeePay.payments.create({
amount: 10,
currency: 'USD',
reference: 'invoice_1042'
});
console.log(payment.checkoutUrl);
// Redirect customer to payment.checkoutUrl
POST /api/v1/payments - Create a paymentGET /api/v1/payments - List paymentsGET /api/v1/payments/:id - Get a paymentPOST /api/v1/payments/:id - Cancel a paymentPOST /api/v1/refunds - Create a refundGET /api/v1/refunds/:id - Get a refundGET /api/v1/payment-methods - List available payment methodsPOST /api/v1/webhooks - Create webhook endpointGET /api/v1/webhooks - List webhooksGET /api/v1/webhooks/:id - Get webhookPATCH /api/v1/webhooks/:id - Update webhookDELETE /api/v1/webhooks/:id - Delete webhookGET /api/v1/webhooks/:id/deliveries - Get webhook delivery historyFor complete API documentation, see docs/openapi.yaml
Creates and retrieves payments with idempotency support.
Mobile-first payment page with payment method selection.
Signed, retryable webhook delivery with event history.
Extensible provider interface for adding new payment methods.
Test payment scenarios without processing real money.
Key tables:
merchants - Merchant accountsmerchant_users - Dashboard usersapi_keys - API key managementpayments - Canonical payment recordspayment_attempts - Individual payment attemptsrefunds - Refund recordswebhook_endpoints - Webhook configurationwebhook_events - Durable event recordswebhook_deliveries - Delivery trackingidempotency_keys - Duplicate request protectionSee src/lib/database/schema.sql for complete schema.
npm install zeepay-sdk
import ZeePay from 'zeepay-sdk';
const zeePay = new ZeePay({
apiKey: process.env.ZEEPAY_API_KEY
});
// Create payment
const payment = await zeePay.payments.create({
amount: 10,
currency: 'USD',
reference: 'invoice_1042',
returnUrl: 'https://myapp.com/success',
cancelUrl: 'https://myapp.com/cancel'
});
// Redirect to checkout
window.location.href = payment.checkoutUrl;
See sdk/README.md for complete SDK documentation.
const webhook = await zeePay.webhooks.create({
url: 'https://myapp.com/webhooks/zeepay',
events: ['payment.succeeded', 'payment.failed', 'payment.refunded']
});
// Save webhook.secret securely
console.log(webhook.secret);
import crypto from 'crypto';
function verifyWebhookSignature(payload, signature, secret) {
const expectedSignature = `sha256=${crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex')}`;
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
}
npm test
npm run build
npm run lint
Merchant Application
|
| ZeePay API
v
ZeePay API Layer
|
Payment Engine
|
Payment Router
/ | \
Cards Mobile Money Wallets
| | |
Acquirer EcoCash Other
| InnBucks Providers
v v v
Payment Providers
|
Confirmed Result
|
ZeePay Webhooks
|
v
Merchant Application
Contributions are welcome! Please follow these steps:
MIT License - see LICENSE file for details
Built with: