SimPay transfer/paysafecard/blik/paypal

Base:

use PatryQHyper\Payments\Online\Methods\SimPayPayment;

$simpay = $payment->online(
    new SimPayPayment(
        'bearer token', 
        'serviceId', 
        'serviceIpnHash'
    )
);

Generate payment:

// required
$sim->setAmount(2.46);

// optional fields
$sim->setCurrency('PLN');
$sim->setDescription('opis');
$sim->setControl('controlData');

$sim->setReturnSuccess('https://simpay.pl');
$sim->setReturnFail('https://simpay.pl/fail');

$sim->setCustomerName('Jan Kowalski');
$sim->setCustomerEmail('test@mail.tld');
$sim->setCustomerIp('192.168.0.1');

$sim->setAntiFraudUserAgent('Mozilla/...');
$sim->setAntiFraudSteamId('STEAMID64');
$sim->setAntiFraudMcUsername('MinecraftNick');
$sim->setAntiFraudMcId('Minecraft premium player uuid');

$sim->setBillingName('First name');
$sim->setBillingSurname('Surname');
$sim->setBillingStreet('billing street');
$sim->setBillingBuilding('building');
$sim->setBillingFlat('flat');
$sim->setBillingCity('city');
$sim->setBillingRegion('region');
$sim->setBillingPostalCode('postCode');
$sim->setBillingCountry('PL');
$sim->setBillingCompany('Test Company Sp. z o.o.');

$sim->setShippingName('First name');
$sim->setShippingSurname('Surname');
$sim->setShippingStreet('Shipping street');
$sim->setShippingBuilding('building');
$sim->setShippingFlat('flat');
$sim->setShippingCity('city');
$sim->setShippingRegion('region');
$sim->setShippingPostalCode('postCode');
$sim->setShippingCountry('PL');
$sim->setShippingCompany('Test Company Sp. z o.o.');

$sim->setCart([
    [
        'name' => 'Test product',
        'quantity' => 2,
        'price' => 1.23,
        'producer' => 'Test producer',
        'category' => 'Category',
        'code' => 'Product Code',
    ],
]);

$sim->setDirectChannel('blik');

$sim->setChannelTypeBlik(true);
$sim->setChannelTypeTransfer(true);
$sim->setChannelTypeCards(false);
$sim->setChannelTypeEWallets(true);
$sim->setChannelTypePayPal(false);
$sim->setChannelTypePaySafe(true);

$sim->setReferer('wizjoner');

$simpayPayment = $sim->generatePayment();
$simpayPayment->getTransactionUrl();
$simpayPayment->getTransactionId();

Get IPN signature:

// Your code in IPN handler.

// example payload getter
$payload = json_decode(file_get_contents('php://input'), true);

$signature = $simpay->generateIpnSignature($payload);

if(!hash_equals($signature, $payload['signature'])) {
    throw new \Exception('invalid signature');
}

Last updated