承接 w3/yapikredi-pos 相关项目开发

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

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

w3/yapikredi-pos

Composer 安装命令:

composer require w3/yapikredi-pos

包简介

Yapı Kredi Bank Virtual POS Integration for PHP

README 文档

README

Bu paket, Yapı Kredi Bankası'nın Sanal POS sistemi ile kolay kullanımlı bir entegrasyon sağlar ve entegrasyon dokümantasyonunda belirtildiği gibi 3D Secure 2.1 protokolünü uygular.

Kurulum

Paketi composer aracılığıyla kurabilirsiniz:

composer require w3/yapikredi-pos

Kullanım

Temel Yapılandırma

use W3\YapiKrediPos\YapiKrediPos;

// Yapı Kredi POS istemcisini başlatın
$pos = new YapiKrediPos(
    'YOUR_MERCHANT_ID',    // Yapı Kredi Bankası tarafından sağlanan Üye İşyeri ID
    'YOUR_TERMINAL_ID',    // Yapı Kredi Bankası tarafından sağlanan Terminal ID
    'YOUR_POSNET_ID',      // Yapı Kredi Bankası tarafından sağlanan POS Net ID
    'YOUR_MERCHANT_KEY',   // Güvenli iletişim için üye işyeri anahtarı
    'test'                 // Ortam: 'test' veya 'production'
);

Laravel Entegrasyonu

Bu paket Laravel entegrasyonu ile birlikte gelir. Paketi kurduktan sonra, yapılandırma dosyasını yayınlayın:

php artisan vendor:publish --provider="W3\YapiKrediPos\Laravel\YapiKrediPosServiceProvider" --tag="config"

Bu, Laravel uygulamanızda bir config/yapikredi-pos.php dosyası oluşturacaktır. .env dosyanızda aşağıdaki ortam değişkenlerini ayarlayarak paketi yapılandırabilirsiniz:

YAPIKREDI_MERCHANT_ID=your_merchant_id
YAPIKREDI_TERMINAL_ID=your_terminal_id
YAPIKREDI_POSNET_ID=your_posnet_id
YAPIKREDI_MERCHANT_KEY=your_merchant_key
YAPIKREDI_ENVIRONMENT=test

Daha sonra paketi Laravel uygulamanızda kullanabilirsiniz:

// Bağımlılık enjeksiyonu kullanarak
public function checkout(YapiKrediPos $pos)
{
    // $pos örneğini kullanın
}

// Facade kullanarak
use YapiKrediPos;

public function checkout()
{
    $response = YapiKrediPos::threeDSecureAuth()
        ->setOrderId(uniqid('order_'))
        // ... diğer parametreler
        ->send();
}

// Servis konteyneri kullanarak
$pos = app('yapikredi-pos');

3D Secure Ödeme Akışı

Adım 1: 3D Secure Kimlik Doğrulamasını Başlatın

// Bu işlem için benzersiz bir sipariş ID'si oluşturun
$orderId = uniqid('order_');

// 3D Secure kimlik doğrulamasını başlatın
$response = $pos->threeDSecureAuth()
    ->setOrderId($orderId)
    ->setCardNumber('4506349116608409')  // Test kart numarası
    ->setExpiryMonth('12')
    ->setExpiryYear('30')
    ->setCvv('000')
    ->setAmount(100.50)                  // TL cinsinden tutar
    ->setCurrency('TL')                  // Para birimi kodu
    ->setInstallment(0)                  // 0 tek ödeme için, veya taksit sayısı
    ->setReturnUrl('https://your-website.com/payment/callback')
    ->send();

// Kimlik doğrulama isteğinin başarılı olup olmadığını kontrol edin
if ($response->isSuccessful()) {
    // Sipariş ID'sini daha sonra kullanmak üzere oturumda veya veritabanında saklayın
    $_SESSION['order_id'] = $orderId;

    // 3D Secure yönlendirmesi için HTML formunu alın
    echo $response->getRedirectForm('Ödemeye Devam Et');

    // Veya formu manuel olarak oluşturabilirsiniz:
    // echo '<form method="POST" action="' . $response->getFormAction() . '">';
    // echo '<input type="hidden" name="data" value="' . $response->getFormData() . '">';
    // echo '<button type="submit">Ödemeye Devam Et</button>';
    // echo '</form>';
} else {
    // Kimlik doğrulama hatasını işleyin
    echo 'Hata: ' . $response->getErrorMessage();
}

Adım 2: 3D Secure Geri Dönüşünü İşleyin

// Geri dönüş URL işleyicinizde:

// Bankanın yanıtından 3D Secure verilerini alın
$threeDSecureData = $_POST['data'] ?? '';

// Sipariş ID'sini oturumdan veya veritabanından alın
$orderId = $_SESSION['order_id'] ?? '';

// Ödemeyi tamamlayın
try {
    $response = $pos->threeDSecurePayment()
        ->setOrderId($orderId)
        ->setThreeDSecureData($threeDSecureData)
        ->setAmount(100.50)              // Kimlik doğrulamada kullanılan tutarla eşleşmelidir
        ->setCurrency('TL')              // Kimlik doğrulamada kullanılan para birimiyle eşleşmelidir
        ->setInstallment(0)              // Kimlik doğrulamada kullanılan taksit sayısıyla eşleşmelidir
        ->send();

    // Ödemenin başarılı olup olmadığını kontrol edin
    if ($response->isSuccessful()) {
        // Ödeme başarılı
        echo 'Ödeme başarılı!';
        echo 'İşlem ID: ' . $response->getTransactionId();
        echo 'Yetkilendirme Kodu: ' . $response->getAuthCode();
    } else {
        // Ödeme başarısız
        echo 'Ödeme başarısız: ' . $response->getErrorMessage();
    }
} catch (\W3\YapiKrediPos\Exception\PaymentException $e) {
    // Ödeme istisnasını işleyin
    echo 'Ödeme hatası: ' . $e->getMessage();
    echo 'Hata kodu: ' . $e->getErrorCode();
} catch (\W3\YapiKrediPos\Exception\ConnectionException $e) {
    // Bağlantı istisnasını işleyin
    echo 'Bağlantı hatası: ' . $e->getMessage();
} catch (\W3\YapiKrediPos\Exception\ValidationException $e) {
    // Doğrulama istisnasını işleyin
    echo 'Doğrulama hatası: ' . $e->getMessage();
}

Hata Yönetimi

Paket, farklı hata senaryoları için farklı türde istisnalar fırlatır:

  • ValidationException: İstek parametreleri geçersiz olduğunda fırlatılır
  • ConnectionException: Yapı Kredi POS API'sine bağlanırken bir hata olduğunda fırlatılır
  • PaymentException: Ödeme reddedildiğinde veya başarısız olduğunda fırlatılır
  • YapiKrediPosException: Diğer tüm hatalar için temel istisna sınıfı

Özellikler

  • Yapı Kredi Bankası'nın POSNET sistemi ile 3D Secure 2.1 entegrasyonu
  • Hem 3D hem de 3D olmayan işlemler için destek
  • Kolay yapılandırma ve kurulum
  • Kapsamlı hata yönetimi
  • Laravel ve diğer PHP çerçeveleriyle uyumlu

Gereksinimler

  • PHP 7.4 veya daha yüksek
  • ext-curl
  • ext-json
  • ext-simplexml

Lisans

MIT Lisansı (MIT). Daha fazla bilgi için lütfen Lisans Dosyasına bakın.

Katkıda Bulunanlar

w3/yapikredi-pos 适用场景与选型建议

w3/yapikredi-pos 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 06 月 18 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 w3/yapikredi-pos 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 w3/yapikredi-pos 我们能提供哪些服务?
定制开发 / 二次开发

基于 w3/yapikredi-pos 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-06-18