Skip to content
زين كاش
Menu
  • ئەپڵیکەیشنی زین كاش
  • خزمەتگوزاریی کۆمپانیاکان
    • خزمه‌تگوزاری پاره‌دانی فاتوره‌
    • خزمه‌تگوزاری دابه‌شكردنی کاش
    • له‌ڕێگه‌ى زین كاش پاره‌كانت به‌ ئۆن لاین وه‌ربگروه
    • پاره‌دان له‌رێگه‌ى كۆدى QR
    • جزدانی خاوه‌ن كاره‌كان
  • خزمه‌تگوزاریيه‌كانی بەکارهێنەران
    • واڵت کارد
    • برِكردنةوةى جوزدانى زين كاش لة كارتى ماستةر كارت يان فيزة كارت
    • گواستنه‌وه‌ى پاره‌
    • داواکردنی پارە
    • ڕاكێشان و ناردنى پاره‌
    • پڕكردنه‌وه‌ى هێڵ‌
    • حەواڵەکردن لە ئەکاونتێکی بانکییەوە بۆ جزدان
    • پاره‌دانى فاتووره‌
    • به‌ ئۆن لاین بازار بكه‌
    • كڕینی كارته‌ ئه‌لكترۆنیه‌كان
    • كارته‌كانی سویچ ماسته‌ر كارد
    • گه‌شتی فڕۆكه‌وانیی و هۆتێله‌كان بگره‌
    • پاره‌دان له‌رێگه‌ى كۆدى QR
    • جزداني بةشداربووان
  • تۆماركردن
    • تۆماركردن له‌ حیسابی زین كاش
    • تۆمار هەروەك نوێ زين كاش بريكار
  • يەكخستن
    • كؤنيَكت كردن لةگةلَ php
    • كؤنيَكت كردن لةگةلَ api
    • يةكخستن لةگةلَ ئؤپن كارت
    • يةكخستن لةگةلَ وؤردپريس
  • شوێنى
  • په‌یوه‌ندى
    • ثيشةكان | زين كاش
    • بەکارهێنانى کارتەکانى سویچ ماستەر کارد™ ى ئەلیکترۆنى لە ئەپلیکەیشنى زین کاش لەگەڵ پاى پاڵ
    • چۆنیەتى بەکارهێنانى کارتى سویچ ماستەر کارد™ لەگەڵ رێکلامى فەیس بووک
    • برِكردنةوةى جوزدانى زين كاش لة كارتى ماستةر كارت يان فيزة كارت
    • ضؤنيةتى بةخشين وة بةكارهيَنانى سةدةقةى ئةلكترؤنى لة ريَطةى جوزدانى زين كاش لة ريَطةى دةزطاى (عين) بؤ ضاوديَرى كؤمةلَايةتى
  • كوردى
    • عربي
    • English

كؤنيَكت كردن لةگةلَ api

  • لاپەڕەی سەرکی
  • يەكخستن
  • كؤنيَكت كردن لةگةلَ api

Integration By Node.Js

This guide details how to integrate the ZainCash online payment service into your website.

Register a Wallet

To integrate your site application with ZainCash in order to start getting paid online, you first have to register a wallet, choosing from one of the three types of wallets available:

  • Special Wallet: for small business and startups, with a maximum of 100 million transactions per month and no daily limit.
  • Corporate Wallet: for large businesses, the maximum amount of transactions per month depends on the size of the company.
  • Government Wallet: for government entities.

Your website has to be submitted first to ZainCash to make sure it does not violate any of ZainCash’s security guidelines.

After you finish registering a wallet, you’ll be sent an email with the following details:

  • Test Merchant Phone Number and Pin.
  • Test Customer Phone Number and Pin.
  • Private Key to generate JSON Web Tokens.

After you finish inserting and confirguring ZainCash’s checkout button on your website using a testing environment, you will be provided with the production credentials.

URLs to be used:

  • Development URL: https://test.zaincash.iq/
  • Production URL: https://api.zaincash.iq/

Generate a transaction ID

The first step is to issue a transaction ID that you’ll be using later on.

Based on the Private Key that was sent to you through email, generate a JWT token (https://jwt.io/) after filling the payload with the amount to be transferred, msisdn that represents the merchant phone number (it has the format 96478xxxxxxxx or 96479xxxxxxxx), serviceType that represents the type of service (like “AAA books website”), the orderId: a reference for the order primary key in your website, and the redirectUrl that represents the webpage the user is redirected to: it is either a page that displays an error message or a confirmation message for a successful transaction.

Modifying orderId and redirectUrl is optional.

Integrate within the code of your website the capability of generating a transaction ID, using the the token generated and the Merchant ID provided to you by ZainCash.

It is recommended to time the transaction ID to be issued right after choosing ZainCash as a payment method (i.e. the transaction ID is not generated until after the site user chooses to use ZainCash as a payment method as opposed to choosing other payment platforms).

The language to be used can also be specified within the code: in this case, we have English, Kurdish and Arabic to choose from.

For security considerations, the transaction ID generated will only be valid for one hour.

NodeJS Example

app.get('/PageAfterClickOnSubmitWithZainCash', function (req, res) {
    jwt.sign({
        amount: 1000,//Product Ammout
        serviceType: 'AAA books website',
        msisdn: 9647911111111,
        orderId: 12345,//optional
        redirectUrl: "http://www.yourwebiste.com/zain_order.php",//optional
    }, 'secretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecret', {
        expiresIn: '4h'
    }, function (err, token) {
        request.post({
            url: 'https://test.zaincash.iq/transaction/init',
            form: {
                token: token,
                merchantId: "572487bca0a4d6f2688c1ee3",
                lang: "ar"//optional
            }
        }, function (err, httpResponse, body) {
            var body = JSON.parse(body); // response of body { id : "asdae123asd123asd" }
            if (body.id)
                return res.redirect('https://test.zaincash.iq/transaction/pay?id=' + body.id);
            return res.redirect('/payment?msg=cannot_generate_token');
        })
    });
});

Open the Pay Page

Insert the following lines of HTML code to add the “Pay with ZainCash” button:



          

Add the following CSS code for aesthetics:

.zaincash-btn {
    background: #191817; /* Old browsers */
    border-radius:30px;
    border: none;
    outline: none;
    padding-right: 15px;
    padding-left: 15px;
    padding-top: 7px;
    padding-bottom: 7px;
}

.zaincash-btn:hover{
    background: #333231;
    transition: all 0.2s;
    color: #fff;
    border-radius:30px;
    border: none;
    outline: none;
}

.zaincash-btn > img {
    width: 160px;
}

When a user clicks on the checkout button on your website, redirect the user to a page where the transaction ID will be issued.

To open the pay page as a pop-up, configure the URL of the same webpage to open in a separate window whenever the user clicks on the checkout button.

The user will be prompted to enter their credentials (phone number and PIN).

It’s up to you to post the data to a popup or an iframe inside a modal window.

Receive and Post the OTP

Upon phone number and PIN validation the user will receive an SMS containing a 4-digit OTP. This OTP should be inserted by the user within the portal, in order to continue the payment process.

Payment Completion

It you are sending a URL value to redirect, the success or the error of the operation will be detected within the code of the redirect URL parameter in the form of a JWT token. The signature of the token will have to be valid in order to get the value of the payload.

The EventListener method can be used when on the pay page popup, in order to know whether the transaction was a success or if an error occurred. The postmessage method can be used to inform whether or not an error occurred.

This can be implemented using the following lines of code:

window.addEventListener('message',function(event) {

  if(event.origin !== 'https://test.zaincash.iq') return;

  if (event.data.status == 'failure') {
    window.location.href = 'failed'
  } else if (event.data.status == 'success') {
    window.location.href = 'success'
  }
},false);

Check the status of the transaction

In order to check the status of the transaction, take the transaction ID and make sure it is associated with the correct ID. The transaction ID is provided to the user after the payment process is complete. The transaction ID will expire after 1 hour so the checking should be done within the hour.

Check Status API is similar to init API, this is where a token should be generated and inputted along with the merchant ID provided to you by Zain, along with the “secret”-based signature into the JWT.io site. Below is a NodeJS example on how to check the status of the transaction.

app.get('/get', function (req, res) {
    jwt.sign({
        id: '578c8d1cc4feda8b118e60e6',
        msisdn: 9647911111111,
    }, 'secretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecret', {
        expiresIn: '4h'
    }, function (err, token) {
        request.post({
            url: 'https://test.zaincash.iq/transaction/get',
            form: {
                token: token,
                merchantId: "572487bca0a4d6f2688c1ee3"
            }
        }, function (err, httpResponse, body) {
            var transaction = JSON.parse(body);
            console.log(transaction);
            res.render('transaction', transaction);
        })
    });
});

ئه‌پلیكه‌یشنی زین كاش

هه‌ر ئیستا ئه‌بلیكه‌یشنی زین كاش داونلۆد بكه‌ له‌سه‌ر مۆبایله‌كه‌ت

ئەپڵیکەیشنەکە داونڵۆد بکە

چاوپێخشاندنه‌وه‌ له‌سه‌ر كۆمپانیاى محفظه‌ العراق

كۆمپانیاى محفظه‌ العراق خزمه‌تگوزارییه‌ پاره‌ییه‌كان ده‌سته‌به‌ر ده‌كات پرۆسه‌ى ناردنى پاره‌كانت ده‌گۆڕێت . ئه‌مڕۆ وه‌ره‌ پاڵمان و سوودمه‌ند به‌ له‌ خزمه‌تگوزارییه‌ ته‌واوكراوه‌كانمان بۆ گواستنه‌وه‌ى پاره‌ دروست كراوه‌ بۆ ئه‌وه‌ى ژیانت ئاسان بكات. محفظه‌ العراق، ساڵى 2014 دامه‌زراوه‌ به‌ هاوكارى زین عێراق، تۆڕى یه‌كه‌م بۆ په‌یوه‌ندییه‌كان له‌ عێراق، و ئه‌ویش گه‌وره‌ترین زیادكراوه‌ بۆ خزمه‌تگوزارییه‌ بانكییه‌ ئه‌لیكترۆنییه‌كان له‌ عێراق. محفظه‌ العراق گونجاوترین و ئاسانترین ڕێگه‌ى گه‌یاندنت بۆ ده‌سته‌به‌ر ده‌كات بۆ خزمه‌تگوزارییه‌ پاره‌ییه‌كان له‌ عێراق.
social network linksocial network linksocial network linksocial network link

خزمه‌تگوزاریه‌كانی

  • كڕینی كارته‌ ئه‌لكترۆنیه‌كان
  • به‌ ئۆن لاین بازار بكه‌
  • پاره‌دانى فاتووره‌
  • پڕكردنه‌وه‌ى هێڵ‌
  • گواستنه‌وه‌ى پاره‌
  • ڕاكێشان و ناردنى پاره‌
  • ئەپڵیکەیشنی زین كاش
  • خزمه‌تگوزاری دابه‌شكردنی کاش
  • كؤنيَكت كردن لةگةلَ php
  • يةكخستن لةگةلَ ئؤپن كارت
  • يةكخستن لةگةلَ وؤردپريس
  • كؤنيَكت كردن لةگةلَ api
107

پەیوەندیکردن لەناو تۆڕدا بەخۆڕاییە

009647802999107

لة دةرةوةي تؤرِ

[email protected]

په‌یوه‌ندى

009647806999902

به يوه نديمان بو بكه

مافى لەبەرگرتنەوە و بڵاوکردنەوە © 2014-2019 هەموو مافەکان بۆ زێن پارێزراوە زين كاش,