Giter VIP home page Giter VIP logo

bkt-ecommerce's Introduction

Paketë PHP për shërbimin eCommerce të bankës BKT

Klasa të thjeshta për të lehtësuar gjenerimin e të dhënave për autorizimin e kërkesës dhe validimin e përgjigjes. Shërbimi eCommerce i BKT, ndryshe nga të tjerë, është i thjeshtë për t'u implementuar. Megjithatë, problemi kryesor me ta është gjenerimi i një hash për të autorizuar porosinë dhe validimi i tij në përgjigje, pjesë që nuk shpjegohen qartë në manual. Me këtë paketë nuk do ju duhet të bëni më shumë se të plotësoni disa parametra.

Instalimi

Klasat mund të përdoren manualisht ose me composer. Kjo e fundit është mënyra e këshilluar dhe çdo zhvillues i zgjuar PHP duhet tashmë ta ketë futur composer në rutinën e tij.

Composer

Composer mund të përdoret në një script tuajin apo në një framework (Laravel, Symfony, etj), dhe në çdo rast paketa funksionon njësoj. I vetmi ndryshim është se me framework, proçesi i autoload kryhet automatikisht për ju dhe nuk keni nevojë të ndiqni hapin e fundit.

Fillimisht përfshini paketën në composer.json:

"require" : {
    "fadion/bkt": "dev-master"
}

Instalojeni duke egzekutuar në terminal:

$ composer install

Përfshini autoload të composer:

require 'vendor/autoload.php';

Manualisht

Mjafton ti përfshini klasat aty ku ju duhet. Vendodhja e tyre mund të mos jetë si më poshtë, sepse varet ku i keni vendosur.

require 'bkt/src/Authenticate.php';
require 'bkt/src/Notify.php';

Autorizimi

Autorizimi është faza ku gjeneroni të dhënat e porosisë dhe ja dërgoni serverit të BKT-së. Këtu blerësi do të drejtohet tek forma e pagesës dhe është e rëndësishme që të dhënat të jenë të sakta. Sidomos, si ç'përmenda më sipër, gjenerimi i hash-it është i pa dokumentuar dhe me siguri do ju sjellë dhembje koke.

Çdo llogari eCommerce nga BKT merr clientid dhe storekey, të dhëna unike që funksionojnë respektivisht si çelësa publik dhe privat. Në shembujt në vijim, do të përdor të dhëna të sajuara, që normalisht do t'ju duhet ti ndërroni me tuajat.

Vendosja e të dhënave

use Fadion\BKT\Authenticate;

$auth = new Authenticate([
    'orderid' => '12345',
    'clientid' => 'ABC123',
    'okUrl' => 'http://www.dyqanijuaj.com/sukses',
    'failUrl' => 'http://www.dyqanijuaj.com/problem',
    'storekey' => 'DEF456',
    'amount' => 1500
]);

Disa nga të dhënat standarte janë të para-vendosura dhe përgjithësisht nuk do ju duhet ti modifikoni. Ato të shfaqura më sipër i përkasin dyqanit tuaj apo porosisë në fjalë dhe do duhet ti vendosni në çdo autorizim.

Krahas kalimit të të dhënave si listë, mund ti kaloni edhe përmes metodave:

$auth = new Authenticate();

$auth->setOrderId('ABC123');
$auth->setClientId('12345');
$auth->setOkUrl('http://www.dyqanijuaj.com/sukses');
$auth->setFailUrl('http://www.dyqanijuaj.com/problem');
$auth->setStoreKey('DEF456');
$auth->setAmount(1500);

Valuta është e vendosur automatikisht si LEK (kodi 008). Për ta ndryshuar keni dy mënyra:

Mund ta kaloni si çelës në listë:

$auth = new Authenticate([
    // të dhënat e tjera
    'currency' => '840'
]);

Ose përmes metodës së dedikuar:

$auth = new Authenticate();
$auth->setCurrency('840');

Kodet e valutave janë të vështirë të mbahen mend, prandaj mund të përdorni konstante për 3 vlerat tipike:

$auth->setCurrency(Authenticate::CURRENCY_LEK);
$auth->setCurrency(Authenticate::CURRENCY_EUR);
$auth->setCurrency(Authenticate::CURRENCY_USD);

Gjenerimi i Hash

Të gjitha të dhënat e kaluara deri tani tek objekti i autorizimit shërbejnë për një qëllim: gjenerimin e hash-it. Ky kod i gjeneruar i dërgohet serverit të BKT-së, i cili e përpunon dhe validon kërkesën.

$auth->generate();

Mjafton metoda më sipër për ta gjeneruar hash dhe për ta futur në listën e të dhënave.

Krijimi i Kërkesës

Serveri i BKT-së pret që kërkesa të jetë POST dhe mënyra më e lehtë për ta dërguar është përmes një forme. Fushat e formës janë të shpjeguara mirë në manual dhe nuk ka nevojë të zgjatemi këtu. Ajo që ju intereson është si ti përdorni të dhënat tek kjo formë.

Më sipër gjeneruam hash-in, i cili plotësoi listën e të dhënave. Kjo listë mund të aksesohet direkt përmes instancës së klasës, ku emrat e fushave janë egzaktësisht si ato në manual.

<?php
$auth = new Authenticate([/* lista e te dhenave */]);
$auth->generate();
?>

<form method="post" action="http://serveri.i.bkt">
    <input type="hidden" name="clientid" value="<?= $auth['clientid']; ?>">
    <input type="hidden" name="amount" value="<?= $auth['amount']; ?>">
    <input type="hidden" name="hash" value="<?= $auth['hash']; ?>">
    <!-- pjesa tjeter e fushave -->
</form>

Për t'ja u lehtësuar punën, keni edhe një metodë që gjeneron inputet html të të gjitha të dhënave. Pjesën tjetër: adresën, kompaninë, telefon, etj, do t'ju duhet ti shtoni.

echo $auth->inputs();

Njoftimi

Marrja e përgjigjes është faza e fundit, ku njoftoheni nëse pagesa ishte e suksesshme. Ajo që ndodh në sfond është krahasimi i hash-it të sjellë nga serveri me atë lokal, për të verifikuar që përgjigja është e vlefshme. Klasa Notify bën egzaktësisht këtë, duke ju treguar me vetëm 2 rreshta nëse gjithçka shkoi mirë ose jo.

Klasa kërkon 2 parametra: të dhënat nga POST dhe storekey (çelësi privat) për të validuar përgjigjen.

use Fadion\BKT\Notify;

$notify = new Notify($_POST, 'DEF456');

if ($notify->success()) {
    // porosi e suksesshme
}

// ose

if ($notify->error()) {
    // porosi me probleme
}

Përgjegjësia

As unë dhe as kjo paketë nuk ka asnjë lidhje me BKT. Qëllimi i paketës është t'ju ndihmojë të integroni sistemin eCommerce të bankës, por unë, si autor i saj, nuk mbaj asnjë përgjegjësi për probleme që mund të sjellë. Jeni të lirë ta përdorni dhe modifikoni si t'ju duket më mirë.

bkt-ecommerce's People

Contributors

fadion avatar

Watchers

James Cloos avatar Ardit Hyka avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.