定制 itsazni/pakasir-sdk-php 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-18

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固