mars-iq/iqpay

Php Api for iraq e-payment 4 providoor QiCard,aps,zaincash,amwal(PayTabs),switch in one class

v1.1 2021-10-01 16:45 UTC

This package is auto-updated.

Last update: 2025-06-05 06:55:35 UTC


README

MarTeam/iq-epay:

This peace of code was written using hackathon yanhad, and it is now under testing level

USES:

PHP OOP , Curl,Php HttpClint,JWT

Problem:

Most of the applications today come with e-payment tools, where many challenges occur in terms of coding. On top of them, the variety of payment gateways which might be difficult to be implemented in the context of coding, and this is due to the multiplicity of documents, links, and work behavior

Target:

To provide a particular package aiming to overcome the challenges of e-payment, throughout building a single object and then call a unit function along with its parameters in order to achieve a payment process all over the gates

Payment Gates:

1-APS (Validated)
2-QiCard (Validated)
3-Amwal(PayTabs) (Validated)
4-ZainCash (Validated)
5-Switch (Validated)
6-Tasdid (Beta)

Solution:

Building a set of problem-solving objects that work together to implemented e-payment task in each particular gateway successfully

Installation

Use composer to manage your dependencies and download mars-iq/iqpay (Work Just Composer Version 2):

composer require mars-iq/iqpay:dev-master 
    

Installation Config File

now you should add config.json file in your root of project like this (All this Configs It is provided to you by the source)

{
    "aps": {
        "username": "xxxxxxxxxx",
        "password": "xxxxxxxxxx",
        "urlapi": "http://api.example.com",
        "redirect": true
    },
    "qi": {
      
        "serverkey": "xxxxxxxxxx",
          "urlapi": "http://api.example.com"
    },
    "zaincash": {
        "Msisdn": "xxxxxxxxxx",
        "Merchant_Id": "xxxxxxxxxx",
        "Secret": "xxxxxxxxxx",
        "production_cred": false
    },
    "switch": {
        "tokenSwitch": "xxxxxxxxxx",
        "entityId": "xxxxxxxxxx",
        "urlapi": "http://api.example.com"

    },
    "tasdid": {
        "username": "xxxxxxxxxx",
        "password": "xxxxxxxxxx",
        "serviceId": "xxxxxxxxxx",
        "urlapi": "http://api.example.com"

    },
    "amwal": {
        "serverkey": "xxxxxxxxxx",
        "profileid": "xxxxxxxxxx",
        "urlapi": "http://api.example.com"

    }

}

Using Object

      use \iqpay\PayClass;
      use \iqpay\getWays;

Example

  
     $PayClass = new PayClass();
     $PayClass->amount = "10000";
     $PayClass->currency = "IQD";// or USD
     $PayClass->returnUrl = "http://example.com";
     $PayClass->failUrl = "http://example.com";
     $PayClass->language = "ar";// or "en"
     $PayClass->description = "xxxxxxx";
     $PayClass->ordernum = "xxxxxxx";
     $PayClass->nameCostumer = "xxxxxxx";
     $PayClass->phoneCostumer = "xxxxxxx";
     $PayClass->method =getWays::qi; //  or "getWays::qi" or "getWays::zaincash" or "getWays::aps"   or "getWays::amwal"
     $response=$PayClass->Pay();//to procces Pay  - response (transiction_id,url) status=>1 is succes or status=> 0 if have erorr and response=>xxxx
     //array(transiction_id,url)  url use for redirect to the payment getway examlpe: header('location: http://paygate.com')
     //transiction_id to save in your database

Example Switch MasterCard

    $PayClass = new PayClass();
    $PayClass->method=getWays::switch;
    $PayClass->amount="90";
    $PayClass->cardNumber="xxxxxxxxxxxxxxx";
    $PayClass->cardHolder="xxxxxxxxxxxxxxx";
    $PayClass->currency="IQD"; // or USD
    $PayClass->Mounth="xxx";
    $PayClass->Year="xxx";
    $PayClass->Cvv="xxx";

    $response=$PayClass->PaySwitch();//to procces Pay  - response (transiction_id) and status=>1 success or status=>0 if have erorr
    //transiction_id to save in your database

Example Check Procces Success(APS,QiCard)

   $orderId = "xxxxxxxxxxxxxxxxxxxx";
   $transiction_id = "xxxxxxxxxxxxxxxxxxxx";
   $PayClass = new PayClass();
   $PayClass->method = getWays::aps;// or getWays::qi
   $res = $PayClass->checkOrder($orderId,$transiction_id); // return -1 not supported  or 'status'=> 1 succes or 'status'=> 2 error and response

Example Void Order (QiCard)

   $orderId = "xxxxxxxxxxxxxxxxxxxx";
   $transiction_id = "xxxxxxxxxxxxxxxxxxxx";
   $PayClass = new PayClass();
   $PayClass->method = getWays::qi;
   $res = $PayClass->QiVoidOrder($orderId,$transiction_id); // return -1 not supported  or 'status'=> 1 succes or 'status'=> 2 error and response

Classes

   PayClass     Payment interfaces interconnection 
   MainClass    Configuration Payments Gate	 
   ApsClass     Aps Payment Gate 
   QiClass     QiCard Payment Gate 
   AmwalClass 	Amwal(PayTabs) Payment Gate	
   ZainCash	    ZainCash Payment Gate		
   SwitchClass	Switch Payment Gate	
   TasdidClass	Tasdid Payment Gate