using System;
|
using System.Text;
|
using System.Web;
|
using System.Web.UI;
|
|
namespace JumbotCms.API.Tenpay
|
{
|
/// <summary>
|
/// PayRequestHandler µÄժҪ˵Ã÷¡£
|
/// </summary>
|
/**
|
* ¼´Ê±µ½ÕÊÇëÇóÀà
|
* ============================================================================
|
* api˵Ã÷£º
|
* init(),³õʼ»¯º¯Êý£¬Ä¬ÈϸøÒ»Ð©²ÎÊý¸³Öµ£¬Èçcmdno,dateµÈ¡£
|
* getGateURL()/setGateURL(),»ñÈ¡/ÉèÖÃÈë¿ÚµØÖ·,²»°üº¬²ÎÊýÖµ
|
* getKey()/setKey(),»ñÈ¡/ÉèÖÃÃÜÔ¿
|
* getParameter()/setParameter(),»ñÈ¡/ÉèÖòÎÊýÖµ
|
* getAllParameters(),»ñÈ¡ËùÓвÎÊý
|
* getRequestURL(),»ñÈ¡´ø²ÎÊýµÄÇëÇóURL
|
* doSend(),ÖØ¶¨Ïòµ½²Æ¸¶Í¨Ö§¸¶
|
* getDebugInfo(),»ñÈ¡debugÐÅÏ¢
|
*
|
* ============================================================================
|
*
|
*/
|
public class PayRequestHandler:RequestHandler
|
{
|
public PayRequestHandler(HttpContext httpContext) : base(httpContext)
|
{
|
|
this.setGateUrl("https://www.tenpay.com/cgi-bin/v1.0/pay_gate.cgi");
|
}
|
public string YinHang { get; set; }
|
|
/**
|
* @Override
|
* ³õʼ»¯º¯Êý£¬Ä¬ÈϸøÒ»Ð©²ÎÊý¸³Öµ£¬Èçcmdno,dateµÈ¡£
|
*/
|
public override void init()
|
{
|
|
//ÈÎÎñ´úÂë
|
this.setParameter("cmdno", "1");
|
|
//ÈÕÆÚ
|
this.setParameter("date",DateTime.Now.ToString("yyyyMMdd"));
|
|
//ÉÌ»§ºÅ
|
this.setParameter("bargainor_id", "");
|
|
//²Æ¸¶Í¨½»Ò×µ¥ºÅ
|
this.setParameter("transaction_id", "");
|
|
//É̼Ҷ©µ¥ºÅ
|
this.setParameter("sp_billno", "");
|
|
//ÉÌÆ·¼Û¸ñ£¬ÒÔ·ÖΪµ¥Î»
|
this.setParameter("total_fee", "");
|
|
//»õ±ÒÀàÐÍ
|
this.setParameter("fee_type", "1");
|
|
//·µ»Øurl
|
this.setParameter("return_url", "");
|
|
//×Ô¶¨Òå²ÎÊý
|
this.setParameter("attach", "");
|
|
//Óû§ip
|
this.setParameter("spbill_create_ip", "");
|
|
//ÉÌÆ·Ãû³Æ
|
this.setParameter("desc", "");
|
|
//ÒøÐбàÂë
|
YinHang = string.IsNullOrEmpty(YinHang) ? "0" : YinHang;
|
this.setParameter("bank_type", YinHang);
|
|
//×Ö·û¼¯±àÂë
|
this.setParameter("cs","utf-8");
|
|
//ÕªÒª
|
this.setParameter("sign", "");
|
}
|
|
|
|
/**
|
* @Override
|
* ´´½¨Ç©Ãû
|
*/
|
protected override void createSign()
|
{
|
|
//»ñÈ¡²ÎÊý
|
string cmdno = getParameter("cmdno");
|
string date = getParameter("date");
|
string bargainor_id = getParameter("bargainor_id");
|
string transaction_id = getParameter("transaction_id");
|
string sp_billno = getParameter("sp_billno");
|
string total_fee = getParameter("total_fee");
|
string fee_type = getParameter("fee_type");
|
string return_url = getParameter("return_url");
|
string attach = getParameter("attach");
|
string spbill_create_ip = getParameter("spbill_create_ip");
|
string key = getParameter("key");
|
|
//×é֯ǩÃû
|
StringBuilder sb = new StringBuilder();
|
sb.Append("cmdno=" + cmdno + "&");
|
sb.Append("date=" + date + "&");
|
sb.Append("bargainor_id=" + bargainor_id + "&");
|
sb.Append("transaction_id=" + transaction_id + "&");
|
sb.Append("sp_billno=" + sp_billno + "&");
|
sb.Append("total_fee=" + total_fee + "&");
|
sb.Append("fee_type=" + fee_type + "&");
|
sb.Append("return_url=" + return_url + "&");
|
sb.Append("attach=" + attach + "&");
|
if( !"".Equals(spbill_create_ip) )
|
{
|
sb.Append("spbill_create_ip=" + spbill_create_ip + "&");
|
}
|
sb.Append("key=" + getKey());
|
|
//Ëã³öÕªÒª
|
string sign = MD5Util.GetMD5(sb.ToString(),getCharset());
|
|
setParameter("sign", sign);
|
|
//debugÐÅÏ¢
|
setDebugInfo(sb.ToString() + " => sign:" + sign);
|
|
}
|
|
}
|
}
|