承接 craftpay/sdk 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

craftpay/sdk

Composer 安装命令:

composer require craftpay/sdk

包简介

Official CraftPay SDK for Laravel — client API + hosting gateway integration

README 文档

README

Oficjalne SDK platformy CraftPay dla Laravel.

Dwa moduły w jednym pakiecie:

Moduł Do czego
Client Podłączenie własnej strony/aplikacji pod API CraftPay (lista pakietów, zamówienia, transakcje itp.)
Gateway Dla paneli hostingowych — stanie się bramką płatności widoczną w CraftPay

Instalacja

composer require craftpay/sdk
php artisan vendor:publish --tag=craftpay-config

Moduł Client — własna strona pod API CraftPay

Użyj gdy chcesz wyświetlić sklep CraftPay na swojej stronie albo zbudować własny checkout.

Konfiguracja .env

CRAFTPAY_SHOP_UUID=uuid-twojego-sklepu
CRAFTPAY_API_SECRET=twoj-api-secret   # tylko dla endpointów /me i /transactions

Użycie przez Facade

use CraftPay\Sdk\Client\Facades\CraftPay;

// Informacje o sklepie
$shop       = CraftPay::shop()->get();
$gateways   = CraftPay::shop()->gateways();
$topPlayers = CraftPay::shop()->topPlayers();
$recent     = CraftPay::shop()->recentPurchases();
$news       = CraftPay::shop()->announcements();

// Kategorie i paczki
$categories = CraftPay::categories()->all();
$packages   = CraftPay::categories()->packages(categoryId: 3);  // lub slug
$all        = CraftPay::packages()->all();

// Złożenie zamówienia
$order = CraftPay::orders()->create([
    'package_id' => 7,
    'nickname'   => 'Steve',
    'gateway'    => 'cashbill',
]);
// $order['payment_url'] — przekieruj kupującego tutaj

// Status zamówienia
$status = CraftPay::orders()->status($order['order_token']);

// Walidacja vouchera
$result = CraftPay::vouchers()->validate([
    'code'     => 'PROMO100',
    'nickname' => 'Steve',
]);

// Wymagają api_secret:
$me           = CraftPay::shop()->me();
$transactions = CraftPay::orders()->transactions(['page' => 1, 'status' => 'success']);

Użycie przez Dependency Injection

use CraftPay\Sdk\Client\CraftPayClient;

class ShopController extends Controller
{
    public function __construct(private CraftPayClient $craftpay) {}

    public function index()
    {
        $packages = $this->craftpay->packages()->all();
        return view('shop.index', compact('packages'));
    }
}

Obsługa błędów

use CraftPay\Sdk\Client\Exceptions\CraftPayException;
use CraftPay\Sdk\Client\Exceptions\ShopNotFoundException;

try {
    $shop = CraftPay::shop()->get();
} catch (ShopNotFoundException $e) {
    // Sklep nie istnieje lub jest wyłączony
} catch (CraftPayException $e) {
    // $e->errorCode — kod błędu z API
    // $e->getMessage() — wiadomość
    // $e->getCode() — HTTP status
}

Moduł Gateway — dla hostingów

Użyj gdy chcesz żeby Twój hosting pojawił się jako dostępna bramka płatności w CraftPay.

Jak to działa

CraftPay  ──POST /api/craftpay/payments/create──▶  Twój panel
                                                        │
                                                   (przetwarzasz płatność)
                                                        │
Twój panel ──POST {notify_url}──────────────────▶  CraftPay

Konfiguracja .env

CRAFTPAY_GATEWAY_ENABLED=true
CRAFTPAY_GATEWAY_API_KEY=klucz-ustalony-z-craftpay-adminem

Implementacja drivera

Stwórz klasę implementującą PaymentDriverInterface:

// app/Services/CraftPayDriver.php
use CraftPay\Sdk\Gateway\Contracts\PaymentDriverInterface;
use CraftPay\Sdk\Gateway\Data\CreatePaymentRequest;
use CraftPay\Sdk\Gateway\Data\PaymentResult;

class CraftPayDriver implements PaymentDriverInterface
{
    public function createPayment(CreatePaymentRequest $request): PaymentResult
    {
        // Stwórz płatność w swoim systemie
        $payment = MyPaymentSystem::create([
            'amount'      => $request->amount,       // np. "10.00"
            'currency'    => $request->currency,     // "PLN"
            'description' => $request->description,
            'return_url'  => $request->returnUrl,
        ]);

        // Zwróć ID płatności i URL do którego ma trafić kupujący
        return new PaymentResult(
            paymentId:  (string) $payment->id,
            paymentUrl: $payment->checkout_url,
        );
    }
}

Zarejestruj driver w AppServiceProvider:

use CraftPay\Sdk\Gateway\Contracts\PaymentDriverInterface;

public function register(): void
{
    $this->app->bind(PaymentDriverInterface::class, CraftPayDriver::class);
}

Uruchom migrację:

php artisan vendor:publish --tag=craftpay-migrations
php artisan migrate

Powiadamianie CraftPay o płatności

Gdy kupujący opłaci zamówienie (np. w Twoim webhookу od Przelewy24):

use CraftPay\Sdk\Gateway\Facades\CraftPayGateway;

// Płatność udana
CraftPayGateway::notifyPaid(
    orderId:   $request->input('order_id'),   // UUID z CraftPay
    paymentId: $internalPaymentId,            // Twoje wewnętrzne ID płatności
);

// Płatność nieudana / anulowana
CraftPayGateway::notifyFailed($orderId);

// Sprawdzenie stanu zamówienia
$order = CraftPayGateway::findOrder($orderId);

Endpoint wystawiony automatycznie

Po włączeniu (CRAFTPAY_GATEWAY_ENABLED=true) SDK automatycznie rejestruje:

POST /api/craftpay/payments/create

Podaj ten endpoint adminom CraftPay razem z kluczem API (CRAFTPAY_GATEWAY_API_KEY).

Wymagania

  • PHP 8.2+
  • Laravel 10 / 11 / 12

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-27