B2C电子商务平台分析与设计报告全解.docx
《B2C电子商务平台分析与设计报告全解.docx》由会员分享,可在线阅读,更多相关《B2C电子商务平台分析与设计报告全解.docx(13页珍藏版)》请在冰豆网上搜索。
![B2C电子商务平台分析与设计报告全解.docx](https://file1.bdocx.com/fileroot1/2022-11/21/7c4e2b12-e31b-4abc-9443-4555eff96904/7c4e2b12-e31b-4abc-9443-4555eff969041.gif)
B2C电子商务平台分析与设计报告全解
B2C电子商务平台分析与设计报告
2005年10月
*****************关泽文
一、项目定义
伴随着信息化时代的到来,人类的生产方式、思维方式、生活方式及其它活动方式发生了深刻的变化。
消费方式既受到技术进步、电子网络普及、数字化变革的直接影响,同时也受到由此而引起的人们观念、思维模式变化所带来的深层次的作用。
信息经济对消费的影响是巨大的.
消费者选择网上购物的心理因素有多种,如非网络购物无法满足个人欲望、购物经验很少或不习惯上街购买、商店人员态度不佳、对商店购物有强烈的排斥、所购买的东西不想让人知道或者想拥有别人所没有的商品等等因素。
网络购物的隐蔽性和产品独特性,恰可满足这些需求。
利用家中电脑连上网络,消费者足不出户,就可到世界各地采购。
针对这些特点,此项目在重点放在开发一个强大的电子商务网站,以满足广大消费者的网上购物需求。
二、需求分析
2.1B2C市场存在的意义
随着人们消费水平的提高,个人消费品市场空前发展,我们发现,越来越多的人拥有大量的闲置商品。
这些商品有新有旧,但都具有完整的使用价值。
拥有者们也许现在不需要它们,便想到把它们出售。
可是如何找到买主,却成为一个令人头疼的问题。
以学生为例。
由于学生爱追赶时尚潮流,而且购买行为往往缺乏计划性,使得他们常常因一时冲动买下某物,之后又发现并没有用。
学生对于电脑、手机、MP3等电子产品需求较多,而这些东西更新又很快,需求的不同使他们希望能互通有无。
一些旧书籍、杂志、音像制品、生活用品等,也是留之无用、弃之可惜,若能卖给需要的人不是皆大欢喜?
与此同时,随着学生们的商品意识的加强,有很多同学以代理商品销售为兼职,有开设个人店铺的需求。
但由于资金方面的限制,不可能开设真正的店铺。
可是由于供需双方市场的不对称性,卖主很难找到合适的买主,有这些需求的人更是不知道有谁要出售,造成这种B2C交易很难达成。
目前普遍的办法是卖者在校内摆个地摊。
做代销的同学到处帖广告或者直接上门推销,展示并出售自己的商品,可是时间、地点、规模都受到限制,而且要耗费大量的时间和体力,还未必有好的效果。
要是有一个平台,让供需双方集中地发布交易信息,并提供双方的联系方式,促成其交易的达成,将为买卖双方带来极大的便利。
2.2现存B2C市场的缺陷
面对如此商机,精明的商家不会无动于衷,现在B2C网上交易市场已经发展壮大起来。
但是我们分析后发现,现存B2C市场存在着一些缺陷,尤其不能适应校园市场的需求。
我们调查发现,目前B2C网站中大部分都是拍卖网站。
当然,拍卖作为B2C的主导交易模式,其优点是存在的,但它的缺陷也是明显的:
交易时间长,买卖双方要耗费大量的时间和精力。
这种模式适合于价值较高的商品,而学生的闲置商品往往是耐用消费品,价值较低,拥有者希望尽快出手,而并不想耗费太多精力计较一点价格差异,因此拍卖模式对校园市场尤其不适合。
现存的另一种B2C网上交易市场就是类似于小百合bbs的fleamarket。
这是以bbs为平台,供交易双方发布信息,并提供站内联系。
但这种方式是很初级的,它只是以交易信息作为bbs的一项内容,而不是专业的交易平台。
它没有按商品分类,用户查找起来很不方便,只能“误打误撞”;由于它是非正式的,缺乏交易规则约束,尤其是它没有保证交易者的信用保障,也没有信用评估体系,交易者要承担一定的风险,使它的可信度下降。
鉴于以上分析,我们的系统为买卖双方提供一个集中的B2C信息交易平台,促进买卖双方的信息沟通,较完善的信用机制提供一定程度上的信用保证,为同学们提供方便的同时保证同学们交易的安全性。
2.3本系统B2C网上交易平台概述
系统采取虚拟货币进行交易和流通,用户通过汇款或银行划账等方式用真实货币换取虚拟货币,卖方按其类型收取不同的费用,费用通过本站系统的虚拟货币扣除,用户在本站通过搜索或分类查找,寻求交易伙伴。
用户可以查询卖方的相关信息和信用评价等指标,决定是否购买。
交易中,按卖方的类型(一般的零散用户或店铺用户)分成两种不同的模型:
系统为有较大商品销售需求的卖方提供的店铺空间,集中展示个人商品,并为卖家提供一定的优惠和折扣。
用户通过分类搜索,查询到满意的商品。
同时可以查看到卖方的上站时间、上架商品次数以及是否有在本站交易违约行为的记录等历史信息,如果是店铺卖方,买家还可以查询店铺的相关历史信息。
决定购买后用户可通过站内或其他联系方式联系。
双方成交后,在网下自行交易,本站不监控交易过程。
在交易过程中如有哪一方出现欺骗行为,可以进行投诉,经系统管理员确认后,对欺骗方进行惩罚。
本系统对个人店铺的卖方用户实行会员制,收取会员费用;对一般的零散型卖方按所发布的商品信息收取费用,费用通过虚拟货币扣除。
本系统对买方不收取费用。
在商店运行的初期,为了提高网站的知名度和扩大网站的影响力,本系统在1年内不收取费用。
本系统保证了买卖双方的交易的安全性。
使用了CA认证的方法,数字安全证书利用一对互相匹配的密钥进行加密、解密。
每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。
商户可以公开其公开密钥,而保留其私有密钥。
购物者可以用人人皆知的公开密钥对发送的信息进行加密,安全地传送以商户,然后由商户用自己的私有密钥进行解密。
伴随着信息化时代的到来,人类的生产方式、思维方式、生活方式及其它活动方式发生了深刻的变化。
消费方式既受到技术进步、电子网络普及、数字化变革的直接影响,同时也受到由此而引起的人们观念、思维模式变化所带来的深层次的作用。
信息经济对消费的影响是巨大的,主要表现在:
1.消费领域拓宽、新消费方式层出不穷
2.消费结构趋于合理、消费阶段向上更替
3.消费满足感更高、消费个性更强
4.消费者价值观转变、消费观提升
三、系统分析
3.1业务流程分析
用户进入本网站须注册并取得账号后方能进行交易。
若没有注册,也可以浏览商品信息,但不能获得卖方或买方的联系方式,也不能对商品留言或在论坛发表观点。
用户登录后,可以发布商品信息,买方浏览所需商品,双方供需匹配后联系,进行实际交易。
由此得出本系统的业务流程分为三部分:
用户注册登陆、交易过程、CA认证。
下面分别予以说明:
3.1.1用户注册登陆
业务流程图如下所示:
用户注册登录的过程分为散户注册和个人店铺用户注册。
系统要求用户注册真实信息。
如果因用户注册为非真实信息而造成的任何损失本系统不予以负责。
对于零散用户,我们采用email地址作为个人身份的验证标识。
用户注册时,输入个人的email地址,本网站将其密码发送至其邮箱中,用户用该密码登录本网站,成为正式用户。
此举在一定程度上保证了注册者的身份可靠,防止恶意注册。
若为店铺用户,需要进行实地验证。
店铺用户需向系统出具保证个人真实身份的证件。
比如身份证件、学生证等。
经本系统管理人员确认后予以通过。
以此最大限度的保证店铺用户的身份真实性,为买方提供信用保障。
散户用户在注册后可以申请升级为店铺用户。
已登录用户可随时修改密码。
3.1.2卖方发布商品信息
系统的卖家可以是一般的零散用户也可以是店铺用户。
卖家发布所要出售的商品信息,可配以文字描述和图片,商品信息在本网站内按类别显示。
若卖方为一般的零散用户,按发布的商品信息收取少量的费用,按卖方所需,每个商品设置不同的保留时间,按不同时间收取费用,在规定的时间内如卖方未将商品下架,系统自行删除商品。
若为个人店铺用户,可以申请不同的空间集中展示自己的商品。
按不同的空间收取不同的会员费用。
个人店铺提供了更为详尽的商品信息。
除了一般的商品信息外,还有商品的数量以及已定购的数量,供买方作为购买参考。
3.1.3买方查询卖方和商品信息,进行交易
对于买家,可以在分类区查找商品信息;也可以用站内搜索器按商品名称、类别、卖家、价格等关键字搜索;还可以去个人店铺中寻找。
一旦找到与自己需求匹配的商品,可以通过查看卖家的评价信息借以判断卖家的信用。
买方可以与卖家在站内联系,也可以通过卖方公布的其他联系方式联系(卖方可选择公布其站外联系方式)。
此后双方的交易过程为本系统的外部行为,交易在网下进行。
买卖行为为买卖双方的个人行为,买卖双方在交易前要确认对方身份的真实性。
若因个人行为不慎造成的损失不在本系统负责的范围之内。
对于零散卖方,在商品卖出后卖方可自行将其下架;如若在一定期限内商品未下架,系统将予以下架。
对于店铺卖方,由用户自行管理商品。
根据用户的会员等级予以不同数量的商品货架,本网站鼓励用户尽快将已出售商品下架,若买方用户投诉店铺卖方长期空货架行为,系统对卖方的信用进行惩罚。
本系统提供一定的信用评价机制,为交易双方提供一定程度上的信用参考价值,最大限度的保证交易双方交易的安全性。
对零散拥护和店铺用户,提供不同的信用评价。
卖方用户必须留存一定金额的货币,如有需要(如取消店铺权限、取消账号等)可以在规定时间内将站内的虚拟货币进行结算。
3.1.4买方使用CA中心提供的私钥签名信息。
买家需要购买商品,必须使用自己的私钥对自己的信息进行加密,以肯定其身份和不要否认地提交信息。
3.2信用体制
本系统与相似的B2C网上商店相比,利用本系统内部的CA认证中心,监控买卖双方的交易行为,提供一个较为有效信用保障体制。
数字安全证书利用一对互相匹配的密钥进行加密、解密。
每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。
商户可以公开其公开密钥,而保留其私有密钥。
购物者可以用人人皆知的公开密钥对发送的信息进行加密,安全地传送以商户,然后由商户用自己的私有密钥进行解密。
用户要进行网卡交易,必须提供自己的认证信息,所以要在CA认证中心取得电子认证证书,认证中心的基本流程是注册个人资料申请个人PIN(个人识别码),管理员审批个人信息并给合格用户发布系统PIN,这个系统PIN是申请电子认证证书必备的,用户可以在查询个人认证资料中查询自己的系统PIN,根据系统PIN,用户可以申请电子认证证书,经过管理员的审批,可以得到电子认证证书。
并由个人认证资料查询处查到个人证书号。
四、系统设计
4.1系统运行基础环境
CPU:
1.0GHz以上(推荐)
内存:
128M以上(推荐)
操作系统:
Windows2000
技术选择:
Jsp+javabean
DBMS选择:
MSSQLServer
第三方厂家插件:
BouncyCastleJCE
网站运行技术平台
网站硬件系统架构,采用目前IT业界流行和普遍采用的先进技术WIN2000+JSP+MSSQLServer来构建。
网站开发的技术平台
服务器环境
客户端环境
windows2000server
Jsp/xml
mssql2000
ie4.x以上
netscape4.x以上
4.2数据库设计
4.2.1数据库分析与数据库规范
根据数据流程分析和ER分析,实体以及实体间的关系可以讲数据库分成:
users,products,orders,assess,requires,categories,mailbox,message个表。
强关联关系要求一个商品必须对应一个用户,一个定单必须对于一个用户,一个ordr_items必须对应一个orders表,一个shop必须对应一个用户,products_categorites必须同时对应一个products和一个categories表单,一个massage必须对应一个users表。
图中表示出了各表之间的主键和外键。
4.3系统设计
4.3.1设计模式简介
模块各自的职责:
Model的作用主要是封装数据及系统的状态,另外太还要处理商业逻辑,但是在目前的设计中通常是把商业逻辑同表现层分开
View是用来显示和发送request的一个UI,在View通常没有商业处理,只是将要处理的数据格式化(HTML)
Controller它只要负责接受request,选择相应的response视图,并传递模型数据
4.3.2为什么选用MSSQLServer
MSSQLServer是一个强大的的DBMS
强大:
它的功能和效率绝对比许多DBMS要强,在Windows平台上,Jsp+Mssqlserver是运行效率相当高的。
数据:
在RSA非对称加密中,二进制流是用Bytes定义的,用Access无法达到那个效果。
4.3.3系统整体设计
系统为了以后的扩展应该支持模块的动态插入,也就是真个系统应该是类似一个CMS系统
4.4系统核心代码
4.4.1数据库服务层
作用:
作为一个javabean,连接数据库,每一页jsp只要引用些javabean内容就可以连接数据库
主要内容:
faq.java
publicclassfaq2{
protectedConnectionconn=null;//Connection接口
protectedStatementstmt=null;//Statement接口
protectedResultSetrs=null;//记录结果集
protectedPreparedStatementprepstmt=null;//PreparedStatement接口
protectedbooleanisConnect=true;//与数据库连接标识
protectedStringsDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
protectedStringsConnStr="jdbc:
odbc:
jspshop";
publicfaq2(){
try{
Class.forName(sDBDriver);conn=DriverManager.getConnection(sConnStr,"","");
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
}
catch(Exceptione){System.out.println(e);isConnect=false;}
}
publicStatementgetStatement(){returnstmt;}
publicConnectiongetConnection(){returnconn;}
publicPreparedStatementgetPreparedStatement(Stringstr){
try{
prepstmt=conn.prepareStatement(str);returnprepstmt;
}
catch(SQLExceptionex){ex.printStackTrace();returnnull;}
}
publicResultSetexecuteQuery(Stringstr){
try{////为了形成多个数据集,使用到这方法。
Statementstmt1;
stmt1=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs=stmt1.executeQuery(str);returnrs;
}catch(SQLExceptionex){returnnull;}
}
publicvoidexecuteInsert(Stringstr)throwsException{stmt.executeUpdate(str);}
publicintexecuteUpdate(Stringstr)throwsException{returnstmt.executeUpdate(str);}
publicvoidexecuteDelete(Stringstr)throwsException{stmt.execute(str);}
publicvoidClose()throwsSQLException{
if(stmt!
=null){stmt.close();stmt=null;}conn.close();conn=null;}
publicvoidclose()throwsSQLException{
if(stmt!
=null){stmt.close();stmt=null;}conn.close();conn=null;}}
4.4.2rsa非对称加密代码
作用:
实现RSA非对称加密,在网站中使用公私钥加密,解密。
主要内容:
rsa.java
importjava.security.*;
importjava.security.interfaces.*;
importorg.bouncycastle.jce.provider.*;
importjava.security.spec.PKCS8EncodedKeySpec;
importjava.security.spec.X509EncodedKeySpec;
publicclassrsa{
privatebyte[]publickey_byte;
privatebyte[]privatekey_byte;
privatejavax.crypto.CipherrsaCipher;
publicrsa()
{
KeyPairkeys=null;
RSAPublicKeykey1;
RSAPrivateKeykey2;
Security.addProvider(neworg.bouncycastle.jce.provider.BouncyCastleProvider());
try{
KeyPairGeneratorkpg=KeyPairGenerator.getInstance("RSA");//指定算法
kpg.initialize(1024);//指定长度
keys=kpg.genKeyPair();
key1=(RSAPublicKey)keys.getPublic();//公钥
key2=(RSAPrivateKey)keys.getPrivate();//私钥
publickey_byte=key1.getEncoded();
privatekey_byte=key2.getEncoded();
rsaCipher=javax.crypto.Cipher.getInstance("RSA","BC");
}
catch(NoSuchAlgorithmExceptione1){}
catch(NoSuchProviderExceptione2){}
catch(javax.crypto.NoSuchPaddingExceptione3){}
}
//////////////////////////////////////////////输出密钥对的byte[]数据////////////////////////////////////////
publicbyte[]getPublicKey(){returnpublickey_byte;}
publicbyte[]getPrivateKey(){returnprivatekey_byte;}
//////////////////////////////////////////////根据byte[]数据产生密钥对////////////////////////////////////////
publicPublicKeycreatePublicKey(byte[]publicKeyBytes)throwsException{
X509EncodedKeySpeckeySpec=newX509EncodedKeySpec(publicKeyBytes);//产生RSA公钥
KeyFactorykeyFactory=KeyFactory.getInstance("RSA");
returnkeyFactory.generatePublic(keySpec);
}
publicPrivateKeycreatePrivateKey(byte[]privateKeyBytes)throwsException
{
//产生RSA私钥
PKCS8EncodedKeySpeckeySpec=newPKCS8EncodedKeySpec(privateKeyBytes);
KeyFactorykeyFactory=KeyFactory.getInstance("RSA");
returnkeyFactory.generatePrivate(keySpec);
}
/////////////////////////////////////////////////RSA公钥加密////////////////////////////////////////////////
publicbyte[]publicKeyEncrypt(byte[]publicKeyBytes,StringoriginalStrings)throwsException
{
PublicKeypublicKey=createPublicKey(publicKeyBytes);//产生RSA公钥
rsaCipher.init(javax.crypto.Cipher.ENCRYPT_MODE,publicKey);//加密
byte[]bytes1=rsaCipher.doFinal(originalStrings.getBytes());
returnbytes1;//返回被加密的二进制数据
}
////////////////////////////////////////////////RSA私钥解密////////////////////////////////////////////////
publicStringprivateKeyDecrypt(byte[]privateKeyBytes,byte[]encryptedBytes)throwsException
{
PrivateKeyprivateKey=createPrivateKey(privateKeyBytes);//产生RSA私钥
rsaCipher.init(javax.crypto.Cipher.DECRYPT_MODE,privateKey);//解密
byte[]bytes1=rsaCipher.doFinal(encryptedBytes);
returnnewString(bytes1);//返回原String.
}
////////////////////////////////////////////////RSA私钥加密////////////////////////////////////////////////
publi