itsazni/pakasir-sdk-php
Composer 安装命令:
composer require itsazni/pakasir-sdk-php
包简介
PHP SDK for Pakasir Payment Link
README 文档
README
PHP SDK for Pakasir Payment Link. Easily integrate QRIS, Virtual Account, and PayPal payments into your PHP applications.
Installation
composer require itsazni/pakasir-sdk-php
Requirements
- PHP 7.4+
- GuzzleHTTP 7.0+
Quick Start
<?php require 'vendor/autoload.php'; use ItsAzni\Pakasir\Pakasir; use ItsAzni\Pakasir\PaymentMethod; // Initialize SDK $pakasir = new Pakasir( slug: 'your-project-slug', apiKey: 'your-api-key' ); // Create a QRIS payment $payment = $pakasir->createPayment( method: PaymentMethod::QRIS, orderId: 'INV-2026-001', amount: 100000 ); echo "Payment Number: " . $payment->payment_number; echo "Total: Rp" . number_format($payment->total_payment); echo "Expires: " . $payment->expired_at;
Usage
Create Payment
use ItsAzni\Pakasir\PaymentMethod; // Using enum $payment = $pakasir->createPayment(PaymentMethod::QRIS, 'ORDER-001', 50000); // Using string $payment = $pakasir->createPayment('bni_va', 'ORDER-002', 100000); // With redirect URL $payment = $pakasir->createPayment( method: PaymentMethod::QRIS, orderId: 'ORDER-003', amount: 75000, redirect: 'https://yoursite.com/payment/success' );
Check Payment Status
$detail = $pakasir->detailPayment('ORDER-001', 50000); if ($detail->isCompleted()) { echo "Payment completed at: " . $detail->completed_at; } elseif ($detail->isPending()) { echo "Waiting for payment..."; } elseif ($detail->isCanceled()) { echo "Payment was canceled"; }
Generate Payment URLs
// Standard payment page URL $paymentUrl = $pakasir->getPaymentUrl('ORDER-001', 50000); // With redirect after payment $paymentUrl = $pakasir->getPaymentUrl('ORDER-001', 50000, 'https://yoursite.com/success'); // QRIS only mode $paymentUrl = $pakasir->getPaymentUrl('ORDER-001', 50000, null, true); // Direct PayPal URL $paypalUrl = $pakasir->getPaypalUrl('ORDER-001', 50000);
Payment Methods
| Method | Enum | String |
|---|---|---|
| QRIS | PaymentMethod::QRIS |
'qris' |
| BNI Virtual Account | PaymentMethod::BNI_VA |
'bni_va' |
| BRI Virtual Account | PaymentMethod::BRI_VA |
'bri_va' |
| CIMB Niaga Virtual Account | PaymentMethod::CIMB_NIAGA_VA |
'cimb_niaga_va' |
| Sampoerna Virtual Account | PaymentMethod::SAMPOERNA_VA |
'sampoerna_va' |
| BNC Virtual Account | PaymentMethod::BNC_VA |
'bnc_va' |
| Maybank Virtual Account | PaymentMethod::MAYBANK_VA |
'maybank_va' |
| Permata Virtual Account | PaymentMethod::PERMATA_VA |
'permata_va' |
| ATM Bersama Virtual Account | PaymentMethod::ATM_BERSAMA_VA |
'atm_bersama_va' |
| Artha Graha Virtual Account | PaymentMethod::ARTHA_GRAHA_VA |
'artha_graha_va' |
| PayPal | PaymentMethod::PAYPAL |
'paypal' |
PaymentPayload Response
$payment->project; // Project slug $payment->order_id; // Your order ID $payment->amount; // Transaction amount $payment->fee; // Transaction fee $payment->total_payment; // Total amount including fee $payment->status; // 'pending', 'completed', or 'canceled' $payment->payment_method; // Payment method used $payment->payment_number; // VA number or QRIS string $payment->payment_url; // Payment page URL $payment->redirect_url; // Redirect URL after payment $payment->expired_at; // Payment expiration timestamp $payment->completed_at; // Payment completion timestamp
Webhook Handling
Pakasir sends a POST request to your webhook URL when a payment is completed.
Handle Webhook
use ItsAzni\Pakasir\WebhookHandler; $webhook = new WebhookHandler(); // Get raw POST body $body = file_get_contents('php://input'); $payment = $webhook->handle($body); if ($payment->isCompleted()) { // Process the order processOrder($payment->order_id, $payment->amount); } http_response_code(200); echo 'OK';
Handle and Verify with API
use ItsAzni\Pakasir\Pakasir; use ItsAzni\Pakasir\WebhookHandler; $pakasir = new Pakasir('your-slug', 'your-api-key'); $webhook = new WebhookHandler($pakasir); $body = file_get_contents('php://input'); $payment = $webhook->handleAndVerify($body); // Returns PaymentPayload if ($payment->isCompleted()) { processOrder($payment->order_id, $payment->amount); }
WebhookPayload Response
$payment->amount; // Transaction amount $payment->order_id; // Order ID $payment->project; // Project slug $payment->status; // 'completed' $payment->payment_method; // 'qris', 'bni_va', etc. $payment->completed_at; // Completion timestamp // Helper methods $payment->isCompleted(); // true if status is 'completed' $payment->isPending(); // true if status is 'pending' $payment->isCanceled(); // true if status is 'canceled'
Error Handling
use ItsAzni\Pakasir\Exceptions\PakasirException; try { $payment = $pakasir->createPayment(PaymentMethod::QRIS, 'ORDER-001', 50000); } catch (PakasirException $e) { echo "Error: " . $e->getMessage(); }
License
MIT License
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-18