Wednesday, 10 September 2014

Payzippy Payment Gateway Integration in ASP.NET/MVC C#

Payzippy is the newest star in the Indian payment gateway, Developed by Flipkart One of the most popular and trusted e-commerce portal of India. As flipkart is a very experienced e-commerce portal they are very well versed with each and every pain and loopholes of Indian payment gateway market and with this very lucrative launch offer it is a very viable solution for most of the websites.

Payzippy is providing the SDK for Java and PHP developer with supports for some very popular e commerce packages like Magento.
But still no SDK for ASP.NET/MVC platform. But Using Payzippy Rest API (JSON) , We can create Payment Integration in ASP.NET.

Prerequisites for Payzippy payment gateway integration in MVC
First you have to register with PayZippy and get 

1. MID (merchant_id)
2. Secure key (used to determine hash)
3. Secure key id (merchant_key_id)

.CS File Code (Payzippy payment gateway )

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Cryptography;
using System.Text;

public partial class PayzippyPaymentGatewayIntegration : System.Web.UI.Page
    protected void Page_Load(object sender, EventArgs e)

    protected PayzippyPaymentGatewayIntegration()
            this.Init += Charging_Init;
       private void Charging_Init(object sender, EventArgs e)
            this.EnableViewState = false;
       private static string secretKey = "KEY_KEY_KEY_KEY_KEY";
        private static string generateSHA256(String input)
            SHA256Managed crypt = new SHA256Managed();
            string hash = String.Empty;
            byte[] crypto = crypt.ComputeHash(Encoding.ASCII.GetBytes(input), 0, Encoding.ASCII.GetByteCount(input));
            foreach (byte bit in crypto)
                hash += bit.ToString("x2");
            return hash;
        static string GenHash(Dictionary<string, string> chargingParams)
            // Acquire keys and sort them.
            List<string> list = new List<string>(chargingParams.Keys);
            StringBuilder stringForHash = new StringBuilder();
            // Loop through keys.
            foreach (var key in list)
                stringForHash.Append(chargingParams[key] + '|');
            return generateSHA256(stringForHash.ToString());
        public Dictionary<string, string> chargingParams;
        private void Main()
            var currentTime = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;

            this.chargingParams = new Dictionary<string, string>();
            chargingParams.Add("merchant_id", "test"); //Your MID issued by PayZippy.
            chargingParams.Add("buyer_email_address", ""); // Email Address
            chargingParams.Add("merchant_transaction_id", "PAY_" + currentTime); //Your Transaction Id
            chargingParams.Add("transaction_type", "SALE"); //This is the default Value.
            chargingParams.Add("transaction_amount", "10000"); //Amount must be in paise. So, 1 Rupee= 100.
            chargingParams.Add("payment_method", "CREDIT"); // CREDIT,DEBIT,EMI,NET
            chargingParams.Add("bank_name", ""); //Bank Name required in case of EMI/NET.
            chargingParams.Add("emi_months", "0"); // Emi Months in case of EMI.
            chargingParams.Add("currency", "INR"); //INR is default.
            chargingParams.Add("ui_mode", "IFRAME"); //REDIRECT/IFRAME.
            chargingParams.Add("hash_method", "SHA256"); //MD5, SHA256
            chargingParams.Add("merchant_key_id", "payment"); //This is the default value.
            chargingParams.Add("timegmt", currentTime.ToString());
            chargingParams.Add("callback_url", "");
            chargingParams.Add("hash", GenHash(chargingParams));

            StringBuilder builder = new StringBuilder();
            foreach (var entry in chargingParams)
                builder.AppendFormat("{0}={1}&", entry.Key, entry.Value);



.ASPX File Code(Design code)

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PayzippyPaymentGatewayIntegration.aspx.cs" Inherits="PayzippyPaymentGatewayIntegration" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">

<html xmlns="">
<head runat="server">
    <form id="form1" action="" method="post" runat="server">
                    var url = "";
                    foreach (var entry in chargingParams)
                <input type="hidden" name="<%=entry.Key %>" value="<%=entry.Value %>" />
                        url += entry.Key + "=" + entry.Value + "&";
                        // do something with entry.Value or entry.Key


                <input type="submit" />
            <iframe width="500" height="500" src="<%=url %>"></iframe>
           var x = document.getElementById("__VIEWSTATE");

Payzippy use Rest API with support for JSON , we can use it in to integrate it. This a very good tutorial on it. Full Source Download
In the same way you can integrate Payzippy payment gateway with MVC also.



Post a Comment