商务网站系统分析Word下载.docx
《商务网站系统分析Word下载.docx》由会员分享,可在线阅读,更多相关《商务网站系统分析Word下载.docx(12页珍藏版)》请在冰点文库上搜索。
该网站的产品展示功能
图四:
该网站的产品信息、收藏、购物车功能
图五:
该网站的到货通知(订阅)功能
图六:
该网站的在线客服功能
图七:
该网站的评价功能
图八:
该网站的支付功能
作业二:
根据建行支付手册,写出商务网站如何使用.net实现支付;
现在这种支付方式比较多象网银在线等使用的方法都是url验证,就是通过url参数和一个这些url参数的md5编码来确认这个连接的正确性,支付宝在你购买成功后跳转自定义连接的时候会传2次过来,第一次是数据底层请求,第二次是web请求,而只有第一次有验证码,这个只能通过记录下来才看的到,因为两次请求间隔很小,如果光显示的话最后的结果是被第二次覆盖了的。
所以在接收的时候就要设定接收条件,一种是没有notify_type参数的,一种是有的。
1
t1=ConfigurationSettings.AppSettings["
interface"
];
//支付接口,就是给的一个连接地址
2
t2=ConfigurationSettings.AppSettings["
account"
//支付宝帐户你的帐户
3
t3=ConfigurationSettings.AppSettings["
password"
//安全校验码,设置的商家验证码
4
t4="
images/logo_zfbsmall.gif"
;
//按钮图片地址
5
t5="
test"
//悬停说明
6
cmd="
0001"
//默认
7
subject="
item"
//商品名称
8
body="
decrip"
//描述
9
order_no=;
//定单号,用户自己生成,方便自己管理
prices=100;
//价格0.01~50000.00
10
rurl="
11
types="
1"
//1:
商品购买2:
服务购买3:
网络拍卖4:
捐赠
12
number="
//购买数量
13
transport="
3"
平邮2:
快递3:
虚拟物品
14
ordinary_fee="
"
//平邮运费
15
express_fee="
//快递运费
16
readonlys="
true"
//交易信息是否只读
17
buyer_msg="
//买家给卖家的留言
18
buyer="
//买家Email
19
buyer_name="
//买家姓名
20
buyer_address="
//买家地址
21
buyer_zipcode="
//买家邮编
22
buyer_tel="
//买家电话号码
23
buyer_mobile="
//买家手机号码
24
partner=ConfigurationSettings.AppSettings["
partenid"
//合作伙伴ID,这个是固定的
上面就是要提供得基本信息,然后就是生成支付宝得连接,也就是给支付宝提供一条带验证的购买信息。
public
string
creatAlipayItemURL(string
t1,string
t2,string
t3,string
t4,string
t5,string
cmd,string
subject,string
body,string
order_no,string
prices,string
rurl,string
types,string
number,string
transport,string
ordinary_fee,string
express_fee,string
readonlys,string
buyer_msg,string
buyer,string
buyer_name,string
buyer_address,string
buyer_zipcode,string
buyer_tel,string
buyer_mobile,string
partner)
{
itemURL,str2CreateAc,acCode;
INTERFACE_URL,sellerEmail,keyCode,imgsrc,imgtitle,AlipayItemURL;
//初始化各必要变量
INTERFACE_URL=t1+t2;
//支付接口
sellerEmail=t2;
//商户支付宝账户(改成你自己的)
keyCode=t3;
//安全校验码(改成你自己的)
imgsrc=t4;
//支付宝按钮图片
imgtitle=t5;
//按钮悬停说明
str2CreateAc="
cmd"
+
cmd
subject"
subject;
str2CreateAc=str2CreateAc
body"
body;
order_no"
order_no;
price"
prices;
//str2CreateAc=str2CreateAc
url"
rurl;
type"
types;
number"
number;
transport"
transport;
/*str2CreateAc=str2CreateAc
ordinary_fee"
ordinary_fee;
express_fee"
express_fee;
readonly"
readonlys;
buyer_msg"
buyer_msg;
*/
seller"
sellerEmail;
25
buyer"
buyer;
26
buyer_name"
buyer_name;
27
buyer_address"
buyer_address;
28
buyer_zipcode"
buyer_zipcode;
29
buyer_tel"
buyer_tel;
30
buyer_mobile"
buyer_mobile;
31
partner"
partner;
32
keyCode;
33
34
//acCode=FormsAuthentication.HashPasswordForStoringInConfigFile(str2CreateAc,"
MD5"
);
35
acCode=this.GetMD5(str2CreateAc,"
gb2312"
36
itemURL=INTERFACE_URL
?
cmd;
37
itemURL=itemURL
&
HttpUtility.UrlEncode(subject);
38
HttpUtility.UrlEncode(body);
39
order_no="
40
price="
41
//itemURL=itemURL
url="
42
type="
43
44
45
/*itemURL=itemURL
46
47
readonly="
48
HttpUtility.UrlEncode(buyer_msg);
49
HttpUtility.UrlEncode(buyer);
50
HttpUtility.UrlEncode(buyer_name);
51
HttpUtility.UrlEncode(buyer_address);
52
53
54
55
partner="
56
ac="
acCode;
57
AlipayItemURL=itemURL;
58
return
AlipayItemURL;
59
}
这个函数就是返回生成的地址,里面注释掉的看你自己需要可以添加进去,然后就是md5码的问题,现在用默认的md5生成程序对中文的支持只限于GB2312,而支付宝使用的是GBK,虽然两个编码的内容GBK兼容GB2312但是毕竟两个编码方式不同,所以会产生错误,如果用英文或者数字不会有问题。
上面下载里面带的一个md5.asp的算法支持中文。
现在已经可以跳转到支付宝的页面了,而我们这边就要自己记录用户的信息已经生成的定单编号,这样在支付宝返回信息的时候来查询。
在设定了返回地址后,我们就要看接收页面了。
msg_id,order_no,gross,buyer_email,buyer_name,buyer_address,buyer_zipcode,buyer_tel,buyer_mobile,action,s_date,ac,notify_type;
returnTxt;
//返回给支付宝通知接口的结果
alipayNotifyURL;
//支付宝查询接口URL
myalipayEmail;
//商户的支付宝Email
ResponseTxt="
returnTxt
=
N"
alipayNotifyURL
ConfigurationSettings.AppSettings["
interfaceback"
//支付宝查询接口地址
myalipayEmail
//填写您的支付宝帐号
//检查支付宝通知接口传递过来的参数是否合法
msg_id
newop.DelStr(Request["
msg_id"
]);
order_no
gross
gross"
buyer_email
buyer_email"
buyer_name
buyer_address
buyer_zipcode
buyer_tel
buyer_mobile
action
action"
s_date
date"
ac
ac"
notify_type
notify_type"
msg_id="
email="
System.Net.WebClient
isClient=
new
System.Net.WebClient();
Stream
isStream
isClient.OpenRead(alipayNotifyURL);
StreamReader
isReader
StreamReader(isStream,System.Text.Encoding.GetEncoding("
GB2312"
));
ResponseTxt
isReader.ReadToEnd();
if(action
==
)//测试商户网站URL是否正确安装
Y"
else
if((action=="
sendOff"
)&
(msg_id!
="
))//发货通知
if((ResponseTxt
)||(ResponseTxt
false"
))
//更新数据在商户系统里的订单数据;
如果已经发货,则将returnTxt置为Y,否则为N
else
//非法数据,不做更新
returnTxt="
Error"
(notify_type=="
web"
//检查是否已经付帐,并记录
checkOut"
))//交易结束通知
60
if((ResponseTxt=="
61
62
如果数据更新成功,则将returnTxt置为Y,否则为N
63
//更新数据
64
65
//你的代码,更新你这边数据
66
returnTxt=
67
68
69
70
71
72
}
73
74
75
76
77
78
Response.Write(returnTxt);