using System; using System.Text; using System.Web; using System.Web.UI; namespace JumbotCms.API.Tenpay { /// /// PayRequestHandler µÄժҪ˵Ã÷¡£ /// /** * ¼´Ê±µ½ÕÊÇëÇóÀà * ============================================================================ * 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); } } }