网银在线支付接口类

最近要做在线支付功能,转一些相关的类.

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace Pay
{
    
/// <summary>
    
/// 网银在线支付
    
/// </summary>
    public class ChinaBank
    {
        
//必要的交易信息
         private string _v_amount;
        
private string _v_moneytype = "CNY";
        
private string _v_md5info;
        
private string _v_mid;
        
private string _v_url = "/Receive.aspx";
        
private string _v_oid;
        
private string _v_key;
        
private ReceiveStruct _Receive;
        
private OrderStruct _Order;
        
private ReMarkStruct _ReMark;

        
#region 收货信息结构

        
/// <summary>
        
/// 收货信息结构
        
/// </summary>
        public struct ReceiveStruct
        {
           
public string v_rcvname;                                                            // 收货人
            public string v_rcvaddr;                                                            // 收货地址
            public string v_rcvtel;                                                             // 收货人电话
            public string v_rcvpost;                                                            // 收货人邮编
            public string v_rcvemail;                                                           // 收货人邮件
            public string v_rcvmobile;                                                          // 收货人手机号
            public string[] v_rcv
            {
                
get
                {
                    
return new string[]
                    { 
                        
"v_rcvname="+v_rcvname,
                        
"v_rcvaddr="+v_rcvaddr,
                        
"v_rcvtel="+v_rcvtel,
                        
"v_rcvpost="+v_rcvpost,
                        
"v_rcvemail="+v_rcvemail,
                        
"v_rcvmobile="+v_rcvmobile
                    };
                }
            }
        }

        
#endregion 收货信息结构

        
#region 订货人信息结构

        
/// <summary>
        
/// 订货人信息结构
        
/// </summary>
        public struct OrderStruct
        {
           
public string v_ordername;                                                          // 订货人姓名
            public string v_orderaddr;                                                          // 订货人地址
            public string v_ordertel;                                                           // 订货人电话
            public string v_orderpost;                                                          // 订货人邮编
            public string v_orderemail;                                                         // 订货人邮件
            public string v_ordermobile;                                                        // 订货人手机号
            public string[] v_order
            {
                
get
                {
                    
return new string[]
                    { 
                        
"v_ordername="+v_ordername,
                        
"v_orderaddr="+v_orderaddr,
                        
"v_ordertel="+v_ordertel,
                        
"v_orderpost="+v_orderpost,
                        
"v_orderemail="+v_orderemail,
                        
"v_ordermobile="+v_ordermobile
                    };
                }
            }
        }

        
#endregion 订货人信息结构

        
#region 两个备注结构

        
/// <summary>
        
/// 两个备注结构
        
/// </summary>
        public struct ReMarkStruct
        {
            
public string remark1;
            
public string remark2;
            
public string[] remark
            {
                
get
                {
                    
return new string[]
                    { 
                        
"remark1="+remark1,
                        
"remark2="+remark2
                    };
                }
            }
        }

        
#endregion 两个备注结构
        
        
#region 网银在线基础属性

        
/// <summary>
        
/// 订单金额
        
/// </summary>
        public string v_amount
        {
            
get { return _v_amount;  }
            
set { _v_amount = value; }
        }
        
/// <summary>
        
/// 币种
        
/// </summary>
        public string v_moneytype
        {
            
get { return _v_moneytype; }
            
set { _v_moneytype = value; }
        }
        
/// <summary>
        
/// 对拼凑串MD5私钥加密后的值
        
/// </summary>
        public string v_md5info
        {
            
get 
            {
                
string text = v_amount + v_moneytype + v_oid + v_mid + v_url + v_key;                           // 拼凑加密串
                _v_md5info = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(text, "md5").ToUpper();
                
return _v_md5info;
            }
        }
        
/// <summary>
        
/// 商户号
        
/// </summary>
        public string v_mid
        {
            
get { return _v_mid; }
            
set { _v_mid = value; }
        }
        
/// <summary>
        
/// 返回页地址
        
/// </summary>
        public string v_url
        {
            
get { return _v_url; }
            
set { _v_url = value; }
        }
        
/// <summary>
        
///推荐订单号构成格式为 年月日-商户号-小时分钟秒
        
/// </summary>
        public string v_oid
        {
            
get { return _v_oid; }
            
set { _v_oid = value; }
        }
        
/// <summary>
        
/// MD5密钥
        
/// </summary>
        public string v_key
        {
            
get { return _v_key; }
            
set { _v_key = value; }
        }
        
/// <summary>
        
/// 收获人信息
        
/// </summary>
        public ReceiveStruct Receive
        {
            
get { return _Receive; }
            
set { _Receive = value; }
        }
        
/// <summary>
        
/// 订货人信息
        
/// </summary>
        public OrderStruct Order
        {
            
get { return _Order; }
            
set { _Order = value; }
        }
        
/// <summary>
        
/// 备注信息
        
/// </summary>
        public ReMarkStruct ReMark
        {
            
get { return _ReMark; }
            
set { _ReMark = value; }
        }
        
#endregion 网银在线基础属性

        
#region  网银在线方法

        
/// <summary>
        
/// 构造支付Url 
        
/// </summary>
        
/// <param name="chinabank"></param>
        
/// <returns></returns>
        public static string CreatUrl(ChinaBank chinabank)
        {
            
string[] OrderUrl ={
                
"v_oid="+chinabank.v_oid,
                
"v_amount="+chinabank.v_amount,
                SplitUrl(chinabank.Receive.v_rcv),
                SplitUrl(chinabank.Order.v_order),
                SplitUrl(chinabank.ReMark.remark)
            };
            
return SplitUrl(OrderUrl).ToString();
        }
        
/// <summary>
        
/// 构造支付Url
        
/// </summary>
        
/// <param name="OrderUrl"></param>
        
/// <returns></returns>
        private static string SplitUrl(string[] OrderUrl)
        {
            System.Text.StringBuilder parameter 
= new System.Text.StringBuilder();
            
int k = 0;
            
for (int i = 0; i < OrderUrl.Length; i++)
            {
                k
++;
                
if (k==1)
                {
                    parameter.Append(OrderUrl[i]);
                }
                
else
                {
                    parameter.Append(
"&" + OrderUrl[i]);
                }
            }
            
return parameter.ToString();
        }
        
#endregion 网银在线方法
    }
}
posted @ 2009-03-08 19:59  wang's Blog  阅读(1759)  评论(1编辑  收藏  举报