username@email.com
2022-01-21 b18a7c8e54b51a5caa400e55cb8cc428c0301a0c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
using System;
using System.Collections;
using System.Text;
using System.Web;
 
namespace JumbotCms.API.Tenpay
{
    /// <summary>
    /// PayResponseHandler µÄժҪ˵Ã÷¡£
    /// </summary>
    /**
    * ¼´Ê±µ½ÕÊÓ¦´ðÀà
    * ============================================================================
    * api˵Ã÷£º
    * getKey()/setKey(),»ñÈ¡/ÉèÖÃÃÜÔ¿
    * getParameter()/setParameter(),»ñÈ¡/ÉèÖòÎÊýÖµ
    * getAllParameters(),»ñÈ¡ËùÓвÎÊý
    * isTenpaySign(),ÊÇ·ñ²Æ¸¶Í¨Ç©Ãû,true:ÊÇ false:·ñ
    * doShow(),ÏÔʾ´¦Àí½á¹û
    * getDebugInfo(),»ñÈ¡debugÐÅÏ¢
    * 
    * ============================================================================
    *
    */
    public class PayResponseHandler:ResponseHandler
    {
        public PayResponseHandler(HttpContext httpContext) : base(httpContext)
        {
            //
            // TODO: ÔÚ´Ë´¦Ìí¼Ó¹¹Ô캯ÊýÂß¼­
            //
        }
        /**
     * ÊÇ·ñ²Æ¸¶Í¨Ç©Ãû
     * @Override
     * @return boolean
     */
        
        public override Boolean isTenpaySign() 
        {
        
            //»ñÈ¡²ÎÊý
            string cmdno = getParameter("cmdno");
            string pay_result = getParameter("pay_result");
            string date = getParameter("date");
            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 attach = getParameter("attach");
            string tenpaySign = getParameter("sign").ToUpper();
            string key = this.getKey();
            
            //×é֯ǩÃû´®
            StringBuilder sb = new StringBuilder();
            sb.Append("cmdno=" + cmdno + "&");
            sb.Append("pay_result=" + pay_result + "&");
            sb.Append("date=" + date + "&");
            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("attach=" + attach + "&");
            sb.Append("key=" + key);
        
            //Ëã³öÕªÒª
            string sign = MD5Util.GetMD5(sb.ToString(),getCharset());    
 
            //debugÐÅÏ¢
            setDebugInfo(sb.ToString() + " => sign:" + sign +
                " tenpaySign:" + tenpaySign);
        
             return sign.Equals(tenpaySign);
        } 
    
    
    }
}