1. Go to this page and download the library: Download comgate/sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
comgate / sdk example snippets
use Comgate\SDK\Comgate;
$client = Comgate::defaults()
->setMerchant('123456') // get on portal.comgate.cz
->setSecret('foobarbaz') // get on portal.comgate.cz
->createClient();
use Comgate\SDK\Entity\Codes\CategoryCode;
use Comgate\SDK\Entity\Codes\CurrencyCode;
use Comgate\SDK\Entity\Codes\DeliveryCode;
use Comgate\SDK\Entity\Codes\PaymentMethodCode;
use Comgate\SDK\Entity\Money;
use Comgate\SDK\Entity\Payment;
use Comgate\SDK\Utils\Helpers;
use Comgate\SDK\Entity\Codes\RequestCode;
use Comgate\SDK\Exception\ApiException;
$payment = new Payment();
$payment
->setPrice(Money::ofInt(50)) // 50 CZK
->setPrice(Money::ofFloat(50.25)) // 50,25 CZK
->setPrice(Money::ofCents(5025)) // 50,25 CZK
// -----
->setCurrency(CurrencyCode::CZK)
->setLabel('Test item')
// or ->setParam('label', 'Test item') // you can pass all params like this
->setReferenceId('test001')
->setEmail('[email protected]')
->addMethod(PaymentMethodCode::ALL)
//->setRedirect()
//->setIframe()
->setTest(false)
->setFullName('Jan Novák')
->setCategory(CategoryCode::PHYSICAL_GOODS_ONLY)
->setDelivery(DeliveryCode::HOME_DELIVERY);
try {
$createPaymentResponse = $client->createPayment($payment);
if ($createPaymentResponse->getCode() === RequestCode::OK) {
// Redirect the payer to Comgate payment gateway (use proper method of your framework)
Helpers::redirect($createPaymentResponse->getRedirect());
} else {
var_dump($createPaymentResponse->getMessage());
}
} catch (ApiException $e) {
var_dump($e->getMessage());
}
use Comgate\SDK\Entity\Payment;
use Comgate\SDK\Entity\PaymentNotification;
use Comgate\SDK\Entity\Codes\PaymentStatusCode;
$transactionId = $_GET['id']; // XXXX-YYYY-ZZZZ
$refId = $_GET['refId']; // your order number
try {
$paymentStatusResponse = $client->getStatus($transactionId);
switch ($paymentStatusResponse->getStatus()){
case PaymentStatusCode::PAID:
// Your code (set order as paid)
echo "Your payment was PAID successfully.";
break;
case PaymentStatusCode::CANCELLED:
// Your code (set order as cancelled)
echo "Your order was CANCELLED.";
break;
case PaymentStatusCode::PENDING:
// Your code (order is still pending)
echo "We are waiting for the payment.";
break;
case PaymentStatusCode::AUTHORIZED:
// Your code (set order as authorized)
echo "Payment was authorized successfully.";
break;
}
} catch (ApiException $e) {
var_dump($e->getMessage());
}
use Comgate\SDK\Entity\PaymentNotification;
use Comgate\SDK\Entity\Codes\PaymentStatusCode;
use Comgate\SDK\Exception\ApiException;
// Create from $_POST global variable
// $notification = PaymentNotification::createFromGlobals();
// Create from your framework
$data = $framework->getHttpRequest()->getPostData();
$notification = PaymentNotification::createFrom($data);
$transactionId = $notification->getTransactionId();
try {
// it's important to check the status from API
$paymentStatusResponse = $client->getStatus($transactionId);
switch ($paymentStatusResponse->getStatus()){
case PaymentStatusCode::PAID:
// Your code (set order as paid)
break;
case PaymentStatusCode::CANCELLED:
// Your code (set order as cancelled)
break;
case PaymentStatusCode::AUTHORIZED:
// Your code (set order as authorized)
break;
// PaymentStatusCode::PENDING - is NOT send via push notification
}
echo "OK"; // important response with HTTP code 200
} catch (ApiException $e) {
var_dump($e->getMessage());
}
use Comgate\SDK\Entity\Refund;
use Comgate\SDK\Exception\ApiException;
use Comgate\SDK\Entity\Money;
use Comgate\SDK\Entity\Codes\RequestCode;
$refund = new Refund();
$refund->setTransId('XXXX-YYYY-ZZZZ')
->setAmount(Money::ofCents(100))
->setRefId('11bb22');
try{
$refundResult = $client->refundPayment($refund);
if($refundResult->getCode() == RequestCode::OK) {
// refund created successfully
}
} catch (ApiException $e){
var_dump($e->getMessage());
}
use Comgate\SDK\Comgate;
use Comgate\SDK\Logging\FileLogger;
use Comgate\SDK\Logging\StdoutLogger;
$client = Comgate::defaults()
->setLogger(new FileLogger(__DIR__ . '/comgate.log'))
->createClient();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.