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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
using
System;
using
System.Data;
using
System.Configuration;
using
System.Collections;
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;
using
System.Text;
public
partial
class
pay : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
Encoding gb2312 = Encoding.GetEncoding(
"gb2312"
);
Response.ContentEncoding = gb2312;
Request.ContentEncoding = gb2312;
}
protected
void
ImageButton1_Click(
object
sender, ImageClickEventArgs e)
{
if
(Request.Cookies[FormsAuthentication.FormsCookieName] !=
null
)
{
Vlike_DB_read a =
new
Vlike_DB_read();
string
zfb_ddh = a.get_zfb_id(Membership.GetUser().UserName, Convert.ToInt32(DropDownList1.SelectedValue));
Response.Redirect(img(
"0001"
,
"包月"
,
"影视包月 10元/月"
, zfb_ddh,
"10.00"
, Membership.GetUser().UserName.ToUpper(), DropDownList1.SelectedValue));
}
else
{
Response.Write(
"<script type="
text/javascript
">alert("
请先登陆!
");</script>"
);
}
}
private
string
img(
string
strcmd,
string
strSub,
string
strSubinfo,
string
strid,
string
strMoney,
string
strUser,
string
strNum)
{
string
strsellerEmail =
"341081@qq.com"
;
//卖家支付宝帐号
string
strAc =
""
;
//卖家支付宝安全校验码
string
INTERFACE_URL =
"https://www.alipay.com/payto:"
;
string
strCmd = strcmd;
//命令字
string
strSubject = strSub;
//商品名
string
strBody = strSubinfo;
//商品描述
string
strOrder_no = strid;
//商户订单号
string
strPrice = strMoney;
//商品单价 0.01~50000.00
string
rurl =
"http://"
; //商品展示网址
string
strType =
"2"
;
//type支付类型 1:商品购买2:服务购买3:网络拍卖4:捐赠
string
strNumber = strNum;
//购买数量
string
strTransport =
"3"
;
//发货方式 1:平邮2:快递3:虚拟物品
string
strOrdinary_fee =
""
;
//平邮运费
string
strExpress_fee =
""
;
//快递运费
string
strReadOnly =
"true"
;
//交易信息是否只读
string
strBuyer_msg =
""
;
//买家给卖家的留言
string
strBuyer =
""
;
//买家EMAIL
string
strBuyer_name = strUser;
//买家姓名
string
strBuyer_address =
""
;
//买家地址
string
strBuyer_zipcode =
""
;
//买家邮编
string
strBuyer_tel =
""
;
//买家电话号码
string
strBuyer_mobile =
""
;
//买家手机号码
string
strPartner =
""
;
//合作伙伴ID 保留字段
return
CreatUrl(strsellerEmail, strAc, INTERFACE_URL, strCmd, strSubject, strBody,
strOrder_no, strPrice, rurl, strType, strNumber, strTransport,
strOrdinary_fee, strExpress_fee, strReadOnly, strBuyer_msg, strBuyer,
strBuyer_name, strBuyer_address, strBuyer_zipcode, strBuyer_tel,
strBuyer_mobile, strPartner);
}
private
string
CreatUrl(
string
strsellerEmail,
string
strAc,
string
INTERFACE_URL,
string
strCmd,
string
strSubject,
string
strBody,
string
strOrder_no,
string
strPrice,
string
rurl,
string
strType,
string
strNumber,
string
strTransport,
string
strOrdinary_fee,
string
strExpress_fee,
string
strReadOnly,
string
strBuyer_msg,
string
strBuyer,
string
strBuyer_name,
string
strBuyer_address,
string
strBuyer_zipcode,
string
strBuyer_tel,
string
strBuyer_mobile,
string
strPartner)
{
//以下参数值不能留空
string
str2CreateAc =
""
;
str2CreateAc +=
"cmd"
+ strCmd +
"subject"
+ strSubject;
str2CreateAc +=
"body"
+ strBody;
str2CreateAc +=
"order_no"
+ strOrder_no;
str2CreateAc +=
"price"
+ strPrice;
str2CreateAc +=
"url"
+ rurl;
str2CreateAc +=
"type"
+ strType;
str2CreateAc +=
"number"
+ strNumber;
str2CreateAc +=
"transport"
+ strTransport;
str2CreateAc +=
"ordinary_fee"
+ strOrdinary_fee;
str2CreateAc +=
"express_fee"
+ strExpress_fee;
str2CreateAc +=
"readonly"
+ strReadOnly;
str2CreateAc +=
"buyer_msg"
+ strBuyer_msg;
str2CreateAc +=
"seller"
+ strsellerEmail;
str2CreateAc +=
"buyer"
+ strBuyer;
str2CreateAc +=
"buyer_name"
+ strBuyer_name;
str2CreateAc +=
"buyer_address"
+ strBuyer_address;
str2CreateAc +=
"buyer_zipcode"
+ strBuyer_zipcode;
str2CreateAc +=
"buyer_tel"
+ strBuyer_tel;
str2CreateAc +=
"buyer_mobile"
+ strBuyer_mobile;
str2CreateAc +=
"partner"
+ strPartner;
str2CreateAc += strAc;
string
acCode = GetMD5(str2CreateAc);
string
parameter =
""
;
parameter += INTERFACE_URL + strsellerEmail +
"?cmd="
+ strCmd;
parameter +=
"&subject="
+ Server.UrlEncode(strSubject);
parameter +=
"&body="
+ Server.UrlEncode(strBody);
parameter +=
"&order_no="
+ strOrder_no;
parameter +=
"&url="
+ rurl;
parameter +=
"&price="
+ strPrice;
parameter +=
"&type="
+ strType;
parameter +=
"&number="
+ strNumber;
parameter +=
"&transport="
+ strTransport;
parameter +=
"&ordinary_fee="
+ strOrdinary_fee;
parameter +=
"&express_fee="
+ strExpress_fee;
parameter +=
"&readonly="
+ strReadOnly;
parameter +=
"&buyer_msg="
+ strBuyer_msg;
parameter +=
"&buyer="
+ strBuyer;
parameter +=
"&buyer_name="
+ Server.UrlEncode(strBuyer_name);
parameter +=
"&buyer_address="
+ strBuyer_address;
parameter +=
"&buyer_zipcode="
+ strBuyer_zipcode;
parameter +=
"&buyer_tel="
+ strBuyer_tel;
parameter +=
"&buyer_mobile="
+ strBuyer_mobile;
parameter +=
"&partner="
+ strPartner;
parameter +=
"&ac="
+ acCode;
return
parameter;
}
private
static
string
GetMD5(
string
s)
{
System.Security.Cryptography.MD5 md5 =
new
System.Security.Cryptography.MD5CryptoServiceProvider();
byte
[] t = md5.ComputeHash(System.Text.Encoding.GetEncoding(
"gb2312"
).GetBytes(s));
System.Text.StringBuilder sb =
new
System.Text.StringBuilder(32);
for
(
int
i = 0; i < t.Length; i++)
{
sb.Append(t[i].ToString(
"x"
).PadLeft(2,
"0"
));
}
return
sb.ToString();
}
}
|
接收支付宝信息并进行相应操作
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
<%@ Page Language=
"C#"
%>
<%@ Import Namespace=
"System.Data.SqlClient"
%>
<%@ Import Namespace=
"System.Data"
%>
<%@ Import Namespace=
"System.Web"
%>
<%@ Import Namespace=
"System.IO"
%>
<%@ Import Namespace=
"System.Net"
%>
<%@ Import Namespace=
"System.Text"
%>
<%@ Import Namespace=
"System.Security.Cryptography"
%>
<script type=
"text/C#"
runat=
"server"
>
private
string
returnTxt =
"N"
;
//返回给支付宝通知接口的结果
private
string
alipayNotifyURL =
"http://notify.alipay.com/trade/notify_query.do?"
; //支付宝查询接口URL
private
string
myalipayEmail =
"341081@qq.com"
;
//商户的支付宝Email
private
string
constPaySecurityCode =
""
;
//码
private
SqlConnection conn =
new
SqlConnection();
private
string
GetMD5(
string
s)
{
System.Security.Cryptography.MD5 md5 =
new
System.Security.Cryptography.MD5CryptoServiceProvider();
byte
[] t = md5.ComputeHash(System.Text.Encoding.GetEncoding(
"gb2312"
).GetBytes(s));
StringBuilder sb =
new
StringBuilder(32);
for
(
int
i = 0; i < t.Length; i++)
{
sb.Append(t[i].ToString(
"x"
).PadLeft(2,
"0"
));
}
return
sb.ToString();
}
private
String Get_Http(String a_strUrl,
int
timeout)
{
string
strResult;
try
{
System.Net.HttpWebRequest myReq = (System.Net.HttpWebRequest) System.Net.HttpWebRequest.Create(a_strUrl);
myReq.Timeout = timeout;
System.Net.HttpWebResponse HttpWResp = (System.Net.HttpWebResponse) myReq.GetResponse();
Stream myStream = HttpWResp.GetResponseStream();
StreamReader sr =
new
StreamReader(myStream, System.Text.Encoding.Default);
System.Text.StringBuilder strBuilder =
new
System.Text.StringBuilder();
while
(-1 != sr.Peek())
{
strBuilder.Append(sr.ReadLine() +
"\r\n"
);
}
strResult = strBuilder.ToString();
}
catch
(Exception exp)
{
strResult =
"错误:"
+ exp.Message;
}
return
strResult;
}
public
void
send(
string
sql)
{
string
dbconn =
"data source=127.0.0.1;UID=Cm;PWD=fallenangel;database=text"
;
conn =
new
SqlConnection(dbconn);
conn.Open();
SqlCommand cmd =
new
SqlCommand(sql, conn);
int
aa = cmd.ExecuteNonQuery();
conn.Close();
}
private
void
Page_Load(
object
sender, System.EventArgs e)
{
//检查支付宝通知接口传递过来的参数是否合法
string
msg_id = System.Web.HttpContext.Current.Request[
"msg_id"
];
string
order_no = System.Web.HttpContext.Current.Request[
"order_no"
];
string
gross = System.Web.HttpContext.Current.Request[
"gross"
];
string
buyer_email = System.Web.HttpContext.Current.Request[
"buyer_email"
];
string
buyer_name = System.Web.HttpContext.Current.Request[
"buyer_name"
];
string
buyer_address = System.Web.HttpContext.Current.Request[
"buyer_address"
];
string
buyer_zipcode = System.Web.HttpContext.Current.Request[
"buyer_zipcode"
];
string
buyer_tel = System.Web.HttpContext.Current.Request[
"buyer_tel"
];
string
buyer_mobile = System.Web.HttpContext.Current.Request[
"buyer_mobile"
];
string
action = System.Web.HttpContext.Current.Request[
"action"
];
string
s_date = System.Web.HttpContext.Current.Request[
"date"
];
string
ac = System.Web.HttpContext.Current.Request[
"ac"
];
string
notify_type = System.Web.HttpContext.Current.Request[
"notify_type"
];
alipayNotifyURL = alipayNotifyURL +
"msg_id="
+ msg_id +
"&email="
+ myalipayEmail +
"&order_no="
+ order_no;
//获取支付宝ATN返回结果,true和false都是正确的订单信息,invalid 是无效的
string
responseTxt = Get_Http(alipayNotifyURL, 120000);
string
Str =
"msg_id"
+ msg_id +
"order_no"
+ order_no +
"gross"
+ gross +
"buyer_email"
+ buyer_email +
"buyer_name"
+ buyer_name +
"buyer_address"
+ buyer_address +
"buyer_zipcode"
+ buyer_zipcode +
"buyer_tel"
+ buyer_tel +
"buyer_mobile"
+ buyer_mobile +
"action"
+ action +
"date"
+ s_date + constPaySecurityCode;
string
ac_code = GetMD5(Str);
if
(action ==
"test"
)
//支付宝接口测试是否有效
{
returnTxt =
"Y"
;
}
if
(action ==
"sendOff"
)
//发货通知
{
if
(responseTxt.Substring(0, 4) ==
"true"
|| responseTxt.Substring(0, 4) ==
"fals"
)
//ATN,验证消息是否支付宝发过来
{
if
(ac_code == ac)
//验证消息是否被修改
{
//数据库操作
}
}
}
if
(action ==
"checkOut"
)
//交易完成通知
{
returnTxt =
"N"
;
if
(responseTxt.Substring(0, 4) ==
"true"
|| responseTxt.Substring(0, 4) ==
"fals"
)
//ATN,验证消息是否支付宝发过来
{
if
(ac_code == ac)
//验证消息是否被修改
{
//数据库操作
}
}
}
System.Web.HttpContext.Current.Response.Write(returnTxt);
}
</script>
|
本文转自曾祥展博客园博客,原文链接:http://www.cnblogs.com/zengxiangzhan/archive/2009/12/31/1636915.html
,如需转载请自行联系原作者