for Developers
These examples are created to experiment with the
myPOS Virtual Checkout API capabilities.
require_once './IPC/Loader.php';
$cnf = new \Satabank\IPC\Config();
$cnf->setIpcURL('https://mypos.eu/vmp/checkout-test/');
$cnf->setLang('en');
$cnf->setPrivateKeyPath(dirname(__FILE__) . '/keys/store_private_key.pem');
$cnf->setAPIPublicKeyPath(dirname(__FILE__) . '/keys/api_public_key.pem');
$cnf->setKeyIndex(1);
$cnf->setSid('000000000000010');
$cnf->setVersion('1.0');
$cnf->setWallet('61938166610');
$customer = new \Satabank\IPC\Customer();
$customer->setFirstName('John');
$customer->setLastName('Smith');
$customer->setEmail('demo@demo.demo');
$customer->setPhone('+359111111111');
$customer->setCountry('BGR');
$customer->setAddress('Business Park Varna');
$customer->setCity('Varna');
$customer->setZip('9000');
$cart = new \Satabank\IPC\Cart;
$cart->add('Some Book"', 1, 9.99); //name, quantity, price
$cart->add('Some other book', 1, 4.56);
$cart->add('Discount', 1, -2.05);
$purchase = new \Satabank\IPC\Purchase($cnf);
$purchase->setUrlCancel('http://mysite.com/ipc_cancel'); //User comes here after purchase cancelation
$purchase->setUrlOk('http://mysite.com/ipc_ok'); //User comes here after purchase success
$purchase->setUrlNotify('http://mysite.com/ipc_notify'); //IPC sends POST reuquest to this address with purchase status
$purchase->setOrderID(uniqid()); //Some unique ID
$purchase->setCurrency('EUR');
$purchase->setNote('Some note'); //Not required
$purchase->setCustomer($customer);
$purchase->setCart($cart);
try{
$purchase->process();
}catch(\Satabank\IPC\IPC_Exception $ex){
//Invalid params. To see details use "echo $ex->getMessage();"
}
require_once './IPC/Loader.php';
$cnf = new \Satabank\IPC\Config();
$cnf->setIpcURL('https://mypos.eu/vmp/checkout-test/');
$cnf->setLang('en');
$cnf->setPrivateKeyPath(dirname(__FILE__) . '/keys/store_private_key.pem');
$cnf->setAPIPublicKeyPath(dirname(__FILE__) . '/keys/api_public_key.pem');
$cnf->setKeyIndex(1);
$cnf->setSid('000000000000010');
$cnf->setVersion('1.0');
$cnf->setWallet('61938166610');
$refund = new \Satabank\IPC\Refund($cnf);
$refund->setAmount(10);
$refund->setCurrency('EUR');
$refund->setOrderID(uniqid());
$refund->setTrnref('123456');
$refund->setOutputFormat(Satabank\IPC\Defines::COMMUNICATION_FORMAT_XML);
if($refund->process()){
//Refund successful! Do something
}else{
//Do something else
}
require_once './IPC/Loader.php';
$cnf = new \Satabank\IPC\Config();
$cnf->setIpcURL('https://mypos.eu/vmp/checkout-test/');
$cnf->setLang('en');
$cnf->setPrivateKeyPath(dirname(__FILE__) . '/keys/store_private_key.pem');
$cnf->setAPIPublicKeyPath(dirname(__FILE__) . '/keys/api_public_key.pem');
$cnf->setKeyIndex(1);
$cnf->setSid('000000000000010');
$cnf->setVersion('1.0');
$cnf->setWallet('61938166610');
$ipcStatus = new Satabank\IPC\GetTxnStatus($cnf);
$ipcStatus->setOrderID('1440');
$ipcStatus->setOutputFormat(\Satabank\IPC\Defines::COMMUNICATION_FORMAT_JSON);
$result = $ipcStatus->process();
switch($result->getStatus()){
case \Satabank\IPC\Defines::STATUS_SUCCESS:
//Display returned data in the site interfase.
//Loop and display in table or just print_r response
print_r(\Satabank\IPC\Helper::getArrayVal($result->getData(CASE_LOWER), 'orderstatus'));
break;
case \Satabank\IPC\Defines::STATUS_INVALID_PARAMS:
//Order not found or set params are invalid.
//Show error.
break;
}
try{
$ipcStatus = new \Satabank\IPC\GetTxnStatus($cnf);
$ipcStatus->setOrderID('1440');
$ipcStatus->setOutputFormat(\Satabank\IPC\Defines::COMMUNICATION_FORMAT_JSON);
$result = $ipcStatus->process();
switch($result->getStatus()){
case \Satabank\IPC\Defines::STATUS_SUCCESS:
print_r(\Satabank\IPC\Helper::getArrayVal($result->getData(CASE_LOWER), 'orderstatus'));
break;
case \Satabank\IPC\Defines::STATUS_INVALID_PARAMS:
echo 'Not found!';
break;
}
}catch(\Satabank\IPC_Exception $ex){
//Display exception message
echo $ex->getMessage();
}
require_once './IPC/Loader.php';
$cnf = new \Satabank\IPC\Config();
$cnf->setIpcURL('https://mypos.eu/vmp/checkout-test/');
$cnf->setLang('en');
$cnf->setPrivateKeyPath(dirname(__FILE__) . '/keys/store_private_key.pem');
$cnf->setAPIPublicKeyPath(dirname(__FILE__) . '/keys/api_public_key.pem');
$cnf->setKeyIndex(1);
$cnf->setSid('000000000000010');
$cnf->setVersion('1.0');
$cnf->setWallet('61938166610');
$ipcLog = new \Satabank\IPC\IPCGetTxnLog($cnf);
$ipcLog->setOrderID('1440');
$ipcLog->setOutputFormat(\Satabank\IPC\Defines::COMMUNICATION_FORMAT_JSON);
$result = $ipcLog->process();
switch($result->getStatus()){
case \Satabank\IPC\Defines::STATUS_SUCCESS:
//Display returned data in the site interfase.
//Loop and display in table or just print_r response
print_r(\Satabank\IPC\Helper::getArrayVal($result->getData(CASE_LOWER), 'log'));
break;
case \Satabank\IPC\Defines::STATUS_INVALID_PARAMS:
//Order not found or set params are invalid.
//Show error.
break;
}
try{
$ipcLog = new \Satabank\IPC\IPCGetTxnLog($cnf);
$ipcLog->setOrderID('1440');
$ipcLog->setOutputFormat(\Satabank\IPC\Defines::COMMUNICATION_FORMAT_JSON);
$result = $ipcLog->process();
switch($result->getStatus()){
case \Satabank\IPC\Defines::STATUS_SUCCESS:
print_r(\Satabank\IPC\Helper::getArrayVal($result->getData(CASE_LOWER), 'log'));
break;
case \Satabank\IPC\Defines::STATUS_INVALID_PARAMS:
echo 'Not found!';
break;
}
}catch(\Satabank\IPC\IPC_Exception $ex){
//Display exception message
echo $ex->getMessage();
}
require_once './IPC/Loader.php';
$cnf = new \Satabank\IPC\Config();
$cnf->setIpcURL('https://mypos.eu/vmp/checkout-test/');
$cnf->setLang('en');
$cnf->setPrivateKeyPath(dirname(__FILE__) . '/keys/store_private_key.pem');
$cnf->setAPIPublicKeyPath(dirname(__FILE__) . '/keys/api_public_key.pem');
$cnf->setKeyIndex(1);
$cnf->setSid('000000000000010');
$cnf->setVersion('1.0');
$cnf->setWallet('61938166610');
try{
$responce = Satabank\IPC\Response::getInstance($cnf, $_POST, \Satabank\IPC\Defines::COMMUNICATION_FORMAT_POST);
}catch(\Satabank\IPC\IPC_Exception $e){
echo 'Error';
}
$data = $responce->getData(CASE_LOWER);
if('...check and update order'){
echo 'OK';
}else{
echo 'Error';
}
require_once './IPC/Loader.php';
$cnf = new \Satabank\IPC\Config();
$cnf->setIpcURL('https://mypos.eu/vmp/checkout-test/');
$cnf->setLang('en');
$cnf->setPrivateKeyPath(dirname(__FILE__) . '/keys/store_private_key.pem');
$cnf->setAPIPublicKeyPath(dirname(__FILE__) . '/keys/api_public_key.pem');
$cnf->setKeyIndex(1);
$cnf->setSid('000000000000010');
$cnf->setVersion('1.0');
$cnf->setWallet('61938166610');
try{
$responce = Satabank\IPC\Response::getInstance($cnf, $_POST, \Satabank\IPC\Defines::COMMUNICATION_FORMAT_POST);
}catch(\Satabank\IPC\IPC_Exception $e){
//Display Some general error or redirect to merchant store home page
}
$data = $responce->getData(CASE_LOWER);
if('...order is found in merchant store DB'){
//Display "Your order has been successfully paid" for example.
}else{
//Display Some general error or redirect to merchant store home page
}
require_once './IPC/Loader.php';
$cnf = new \Satabank\IPC\Config();
$cnf->setIpcURL('https://mypos.eu/vmp/checkout-test/');
$cnf->setLang('en');
$cnf->setPrivateKeyPath(dirname(__FILE__) . '/keys/store_private_key.pem');
$cnf->setAPIPublicKeyPath(dirname(__FILE__) . '/keys/api_public_key.pem');
$cnf->setKeyIndex(1);
$cnf->setSid('000000000000010');
$cnf->setVersion('1.0');
$cnf->setWallet('61938166610');
try{
$responce = Satabank\IPC\Response::getInstance($cnf, $_POST, \Satabank\IPC\Defines::COMMUNICATION_FORMAT_POST);
}catch(\Satabank\IPC\IPC_Exception $e){
//Display Some general error or redirect to merchant store home page
}
$data = $responce->getData(CASE_LOWER);
if('...order is found in merchant store DB'){
//Display "Your order has been canceled" for example.
}else{
//Display Some general error or redirect to merchant store home page
}
require_once './IPC/Loader.php';
$cnf = new \Satabank\IPC\Config();
$cnf->setIpcURL('https://mypos.eu/vmp/checkout-test/');
$cnf->setLang('en');
$cnf->setPrivateKeyPath(dirname(__FILE__) . '/keys/store_private_key.pem');
$cnf->setAPIPublicKeyPath(dirname(__FILE__) . '/keys/api_public_key.pem');
$cnf->setKeyIndex(1);
$cnf->setSid('000000000000010');
$cnf->setVersion('1.0');
$cnf->setWallet('61938166610');
try{
$responce = Satabank\IPC\Response::getInstance($cnf, $_POST, \Satabank\IPC\Defines::COMMUNICATION_FORMAT_POST);
}catch(\Satabank\IPC\IPC_Exception $e){
echo 'Error';
}
$data = $responce->getData(CASE_LOWER);
if('...check and update order'){
echo 'OK';
}else{
echo 'Error';
}