0
Payzippy是印度最新的支付網關提供服務之一。他們爲PHP和Java提供了SDK,但仍然沒有用於Asp.net平臺的SDK。我們如何整合它。Payzippy支付網關集成在Asp.net
Payzippy是印度最新的支付網關提供服務之一。他們爲PHP和Java提供了SDK,但仍然沒有用於Asp.net平臺的SDK。我們如何整合它。Payzippy支付網關集成在Asp.net
Payzippy使用支持JSON的Rest API,我們可以在ASP.net中使用它來整合它。這是一個很好的教程。完整的源Download
我已經在CS文件中使用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Security.Cryptography;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected Default2()
{
this.Init += Charging_Init;
Main();
}
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);
list.Sort();
StringBuilder stringForHash = new StringBuilder();
// Loop through keys.
foreach (var key in list)
{
stringForHash.Append(chargingParams[key] + '|');
}
stringForHash.Append(secretKey);
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 protected]"); // 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", "http://busnow.in/bus/default.aspx");
chargingParams.Add("hash", GenHash(chargingParams));
StringBuilder builder = new StringBuilder();
builder.Append("https://www.payzippy.com/payment/api/charging/v1?");
foreach (var entry in chargingParams)
{
builder.AppendFormat("{0}={1}&", entry.Key, entry.Value);
}
Console.WriteLine(builder.ToString());
}
}
代碼爲設計文件中的代碼
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" action="https://www.payzippy.com/payment/api/charging/v1" method="post" runat="server">
<div>
<div>
<%
var url = "https://www.payzippy.com/payment/api/charging/v1?";
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" />
</div>
<iframe width="500" height="500" src="<%=url %>"></iframe>
</div>
</form>
<script>
var x = document.getElementById("__VIEWSTATE");
x.parentNode.removeChild(x);
</script>
</body>
</html>
我希望這會幫助!!!!