machour / konnect

Konnect PHP SDK

0.0.2 2022-12-07 21:52 UTC

This package is auto-updated.

Last update: 2024-09-08 11:47:24 UTC


README

Konnect

突尼斯的支付解决方案。简单、快速、个性化、即时,适用于所有人!

安装

composer require machour/konnect

此SDK遵循PSR-18 "HTTP客户端"标准,以实现更高的互操作性。

您的框架很可能会为您处理依赖注入,如果不是,您可以使用任何符合该规范的实现。

以下示例使用这两个库

composer require guzzlehttp/guzzle nyholm/psr7

SDK初始化

<?php

include './vendor/autoload.php';

use GuzzleHttp\Client;
use Machour\Konnect\Gateway;
use Machour\Konnect\ApiException;
use Nyholm\Psr7\Factory\Psr17Factory;

// Use this or bring your own implementation
$psr17Factory = new Psr17Factory();
$client = new Client();
$konnect = new Gateway($psr17Factory, $psr17Factory, $client);

// Mandatory
// Retrieve this from your Konnect dashboard
$apiKey = "6137ad140c181c5eb44a7f88:Rp2dpHPb0mBpj3_51s86zzp3PXs5w1";
$konnect->setApiKey($apiKey);

// By default, the SDK is in sandbox mode.
// To switch to production, use the following
$konnect->setProductionMode();

API

initPayment(array $params)

创建一个新的支付请求。

有关有关 $params 和返回数组的完整描述,请参阅Konnect文档

/**
 * @throws ApiException|\Psr\Http\Client\ClientExceptionInterface
 */
public function initPayment(array $params): array
请参阅使用示例和输出
$response = $konnect->initPayment([
    "receiverWalletId" => "5f7a209aeb3f76490ac4a3d1",
    "description" => "payment description",
    "amount" => 100000, // millimes
    "type" => "immediate",
    "lifespan" => 10, // minutes
    "token" => "TND",
    "firstName" => "Mon prenom",
    "lastName" => "Mon nom",
    "phoneNumber" => "12345678",
    "email" => "mon.email@mail.com",
    "orderId" => "1234657",
    "link" => "https://api.dev.konnect.network/WSlQUtBF8",
    "silentWebhook" => true,
    "checkoutForm" => true,
    "webhook" => "https://merchant.tech/api/notification_payment",
    "successUrl" => "https://dev.konnect.network/gateway/payment-success",
    "failUrl" => "https://dev.konnect.network/gateway/payment-failure",
    "acceptedPaymentMethods" => [
        "bank_card",
        "wallet",
        "e-DINAR"
    ]
]);

var_dump($response);
/**
array(2) {
["payUrl"]=>
string(80) "https://preprod.konnect.network/gateway/pay?payment_ref=6392d70408ac861bcea30337"
["paymentRef"]=>
string(24) "6392d70408ac861bcea30337"
}
*/

getPaymentDetails(string $paymentId)

获取指定id的支付详情。

有关返回数组的完整描述,请参阅Konnect文档

/**
 * @throws ApiException|\Psr\Http\Client\ClientExceptionInterface
 */
public function getPaymentDetails(string $paymentId): array

异常

如果您的调用有误,此SDK将抛出 \Machour\Konnect\ApiException。异常的 errors 属性将包含报告的错误。

然而,如果Konnect服务器有问题,将抛出代替的 PSR-18 异常。

try {
    $response = $konnect->initPayment([/* ... */]);
    
    } catch (ApiException $e) {
        // HTTP status code
        echo $e->getCode();
        // HTTP status message
        echo $e->getMessage();
        // Konnect API usage errors
        var_dump($e->errors);
    
    } catch (\Psr\Http\Client\ClientExceptionInterface $e) {
        // Transport error, something is wrong with the Konnect API, and they're
        // probably already working on that
    }
}

另请参阅