求解 ASP.net 银行接口的代码
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
namespace Utils
{
public class OnPayEngine
{
public static string strSecureApiIn = "a2su3ig8y";
public static string strRedirectLink = "http://secure.onpay.ru/pay/demo";
public static string strUrlSuccess = "http://www.domen.com/Success.aspx";
public static string strUrlFail = "http://www.domen.com/Fail.aspx";
public static int iUSER_ID = 123456;
public static string strUSER_EMAIL = "demouser@demodomen.ru";
public static string BuildCRCString(string sCrcBase)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] bSignature = md5.ComputeHash(Encoding.UTF8.GetBytes(sCrcBase));
StringBuilder sbSignature = new StringBuilder();
foreach (byte b in bSignature)
sbSignature.AppendFormat("{0:x2}", b);
return sbSignature.ToString().ToUpper();
}
public static string GenerateUserPaymentLink(float fOutSum)
{
string sCrcBase;
OnPayTransfernew OnPayTransfer();
onpayTransfer.USER_ID = iUSER_ID;
onpayTransfer.CHECK_PAID = 0;
onpayTransfer.REDIRECT_DTE = DateTime.Now;
onpayTransfer.PAY_PAID = 0;
onpayTransfer.TRANSFER_SUM = fOutSum;
onpayTransfer.Create();
sCrcBase = string.Format("fix;{0};{1};{2};yes;{3}", fOutSum, "RUR", onpayTransfer.ID,
strSecureApiIn);
string strMD5String = BuildCRCString(sCrcBase);// Закодировать строку
onpayTransfer.Update();
return strRedirectLink + "?" +
"pay_mode=fix" +
"&price=" + fOutSum +
"&pay_for=" + onpayTransfer.ID +
"&md5=" + strMD5String +
"&convert=yes" +
"&url_success=" + strUrlSuccess +
"&url_fail=" + strUrlFail +
"¬e=" + "Пополнение_счёта" +
"&user_email=" + strUSER_EMAIL;
}
public static string GenerateCheckCRC(int pay_for, string strCurrency, string order_amount, int code)
{
string sCrcBase = string.Format("check;{0};{1};{2};{3};{4}", pay_for, order_amount, strCurrency, code, strSecureApiIn);
return BuildCRCString(sCrcBase);
}
public static string GeneratePayCRC(int pay_for, string onpay_id, string order_amount, int code)
{
string sCrcBase = string.Format("pay;{0};{1};{2};{3};RUR;{4};{5}", pay_for, onpay_id, pay_for, order_amount, code, strSecureApiIn);
return BuildCRCString(sCrcBase);
}