查看: 82424|回复: 686

实现游客下单,直接付款功能完整方法(订单+商城+支付模块二次开发) 已完成

    [复制链接]
发表于 2009-7-23 02:38:11 | 显示全部楼层 |阅读模式
本帖最后由 秋云 于 2009-7-23 19:42 编辑

用PHPCMS有一段时间了,最近用她做了一个购物站,将一些解决商场(订单,支付)方法提供出来,大家分享。

一.介绍
修改的功能:1.游客可以下单;
                  2.游客不能进行订单管理(以及收货地址)和财务管理;
                  3.订单和支付模块简单化。
实现的购物模式为:商品信息页“我要购买-->订单填写-->订单确认-->支付方式选择-->汇款确认-->进入支付站页面”


二.如何使游客下单最简单的解决方法
     在PHPCMS商场点“我要购买”后,如果末登录会弹出


导致游客不能下单。这是由于order/include/common.php中有句会员登陆验证语句:
if(!$_userid) showmessage('请登陆', $MODULE['member']['url'].'login.php?forward='.urlencode(URL));  
将其去掉即可;  接下来填写订单,确认订单,进入"

付款金额:332.00 元
帐户余额:元     账户余额不够,请立即充值。
点击立即充值后会再弹出,又出现登陆的页面,是由于支付模块需要再一次验证会员是否登陆,解决方法同上,出掉pay/include/common.php中
if(!$_userid) showmessage('请登陆', $MODULE['member']['url'].'login.php?forward='.urlencode(URL));  。
就可以进在入在线支付页面填入姓名,邮箱等等,确定会进入付款确认页面,虽然没有会员名称和会员号,但是可以根据游客也的邮箱,姓名等做为查询条件。

至此,实现游客下单功能,但是个人觉得步骤太过于麻烦,游客所需填写页面过多,不利于用户体验。所以下面接着介绍如何使购物简单化。

二.订单模块简单化

1.收货地址修改
      由于前面取消了必须会员购买,游客在填写 收货地址 也会存入数据库,当同一游客再一次购物时就可以选择收货地址。但是由于数据库存入了收货地址数据又缺少数据读取标识(原为会员号),所以当游客下订单时可能见到其它会员的收货地地,极为不安全。后台虽然可以设置“每人最多能保存的收货地址数”,但是不能设置为0。解决办法是:
打开templates\default\order\order.html 文件对里面代码进行修改,具体方法我就不细说了(一下也说不清),附件里templates\default\order中order.html 的里面有详细的修改说明,可以打开详细看。说明一下,有的网站是需要会员个登陆购买的,所以将代码中的{if $delivers}这个代码是判断是否有存有收货地址)全改为{if $delivers&$_userid}现在不是仅要存有收货地址而且还必须是会员)。这样就实现了会员有收货地址储存,而游客没有。

2.订单页面的相关修改
  (1).在填写收货相信时

既要电话又要手机还是必填,而且电话。个人认为必要,所以改成了

将手机改为邮箱,邮箱后面有用。当然需要的朋友也可以改成其它的如QQ,MSN等,这里需要修改三个页面模板templates\default\order下面的order.html,deliver_edit.html,deliver.html(不仅要改文字不要忘了改表单验证)。

(2)左侧的“订单管理”
。由于取消了order/include/common.php中的会员验证语句,所以订单管理变的也是游客可以访问和修改,极为不安全。所以修改 了order文件下的index.php和deliver.php。方法是在这二个文件中一些地方加入了用户登陆判断语句“
if(!$_userid) showmessage('会员功能,游客请先注册后使用', HTTP_REFERER);
” 使用游客不能进行订单管理。注:这个用户登陆判断语句和order/include/common.php里面判断的语句略有不同,原为“
if(!$_userid) showmessage('请登陆', $MODULE['member']['url'].'login.php?forward='.urlencode(URL));
”.原来的提示语“请登陆”过于简单,而且判断是否为会员直接跳到用户登陆页面(个人认为这样对游客下单来说极为麻烦,很容易丢失订单页面,而且就算注册后还得进入详细资料填写页面,完成后进入会员中心... ...订单页面早就丢失了,又得重新下单,填写资料... ...)所以我修改 为转跳到前一页面。例如游客下单时点击了旁边的“订单管理”中的选项时直接弹出。然后跳转回订单页面,这样游客就知道那是会员功能,如果想使用则会去注册页面注册,如果为了方便就直接写订单了。
(3)订单确认页面验证码问题
填写好订单提交后进入订单确认页面下面还有个验证码,个人觉得这个虽然没有什么问题,但是这也是多余的,造成游客及会员填写量。所以修改了templates\default\order下面的order_confirm.html将里面的
<tr>
        <th>验证码:</th>
        <td>{form::checkcode('checkcodestr', 6, ' require="true" datatype="require" msg="请输入验证码" msgid="msg_checkcode"')}<span id="msg_checkcode"></span></td>      
      </tr>

去掉,同时将order下面的order.php中的checkcode($checkcodestr, 1) 去掉。这样就在订单确认页面就可以不用再写入验证码。

好了,到些订单相应功能更改完毕。主要是实现游客下订单,游客不能进行订单管理和收货地址储存地址管理,以及一些简化的修改。下面介绍支付模块如果简单化。

二.支付模块简单化
    PHPCMS支付模块的形式为下订单,检验是否有充足余额。如有没有再进行充值。很多朋友对这个支付模式有些不赞同,但是我觉得PHPCMS这样大站设计的,还是不错的,如TAOBAO等购物站购物时都会先检验是否有余额再进行充值。但是对于小站来说是没必要的,因为小站没有固定的会员,不可能存在有会存款。
    而且对于游客来说,更不可能有余额。所以对这里作了一些修改。
     主是order文件夹下面的order.php文件,里面有句“
$forward = $M['url'].'index.php?action=pay&orderid='.$orderid;
”这个代码为确认订单页面后跳转到的页面既:

将这句改为“
$forward = $MODULE['pay']['url'].'showpayment.php?action=type&pay=online&amount='.$price.'&email='.$d[mobile].'&contactname='.$d[consignee].'&telephone='.$d[telephone].'&usernote='.$note;
”(注:也可以改为  
if(!$_userid)  
  {$forward = $MODULE['pay']['url'].'showpayment.php?action=type&pay=online&amount='.$price.'&email='.$d[mobile].'&contactname='.$d[consignee].'&telephone='.$d[telephone].'&usernote='.$note;}
  else
  {$forward = $M['url'].'index.php?action=pay&orderid='.$orderid;}  
如果是会员则进行验证是否有充足余额,如果不是会员直接进入在线支付,若要使会员不进行余额验证,使用上一句代码既可)

点确认订单后直接跳到在线支付页面:

仔细看过个在线支付页面后发现会让游客再次写姓名,电话,还有邮箱还有备注等,游客是来购物的,不是来填写资料的,而且这些资料在订单页面已经填写过。所以对文件templates\default\pay\online_view.html进行了修改在确认订单后得到现在的在线支付页面:

所有填写信息均读取了用户填写订单时的信息,不用在写入。只需确认信息和选择支付方式(其实这个页面的主要功能也就是选择支付方式,如果只设定一个支付方式的话,这个页面都可以省略掉,直接进入付款确认页面,这里就不做介绍了。)
再次点确让后时入付款页面:
(在我自己做的站里这个汇款确认页面也是省略掉的,做的是表单立即自动提交,由于修改文件较多,以后有时间再介绍)
点击支付后就进入支付网站了;
这里和订单模块一样,为了不使游客有财务管理的其它功能所以在pay下的index.php,online.php,pay.php,showpayment.php,useramount.php页面中都加入了
if(!$_userid) showmessage('会员功能,游客请先注册后使用', HTTP_REFERER);
只有会员才能对财务管理里抽项目进行操作。

到这里整个商场购物游客下单及简单化都实现了。

其实还更简单的模式,将选择支付方式放到订单填写里,游客只需要填写订单,再确认订单就进入付款页面,相比前面介绍的模式只少了二个确认步骤,由于时间关系我就不介绍了,有兴趣的朋友自己修改。

声明:本人由于技术原因并末对PHPCMS做大的改变,只是在其原有基础文件上做出些修改,仅供参考,同也表达对PHPCMS的谢意。

注:附件包只提供了GBK的文件,UTF-8的朋友麻烦自己对照修改一样。
      只需解压后覆盖原文件即可(为了安全请先备份原文件)
      时间比较仓促,如有遗漏或者错误的地方希望朋友们提出我再修改。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?点击这里注册

x

评分

参与人数 8鲜花 +28 PC币 +1 收起 理由
muvtou + 4
jckai2008 + 2
夜之舞 + 1 好东东,建议收藏!
winliuxq + 10 + 1 热心鼓励
小龙龙 + 3 我顶你个肺!
yakey + 1 花儿不多,聊表谢意
东风不倒 + 2 good
世界首富 + 5 先给个鼓励

查看全部评分

发表于 2009-7-23 09:27:29 | 显示全部楼层
顶个~~~
发表于 2009-7-23 09:34:58 | 显示全部楼层
谢谢分享
发表于 2009-7-23 09:57:29 | 显示全部楼层
顶个,,,,,,,,,,,,,,
发表于 2009-7-23 16:44:03 | 显示全部楼层
感谢分享!!
发表于 2009-7-24 00:29:02 | 显示全部楼层
不错 谢谢楼主
发表于 2009-7-24 08:42:56 | 显示全部楼层
谢谢分享
发表于 2009-7-24 11:39:14 | 显示全部楼层
不错,顶一下...
发表于 2009-7-24 12:07:13 | 显示全部楼层
不错不错
发表于 2009-7-24 20:49:35 | 显示全部楼层
顶楼主一下。
发表于 2009-7-24 22:10:27 | 显示全部楼层
好好啊,呼呼
发表于 2009-7-25 13:19:31 | 显示全部楼层
顶个~~~
发表于 2009-7-25 18:34:31 | 显示全部楼层
强啊强啊强啊
发表于 2009-7-25 20:40:40 | 显示全部楼层
强啊强啊强啊
发表于 2009-7-27 12:52:27 | 显示全部楼层
顶顶顶顶顶顶顶顶的顶顶顶顶的
您需要登录后才可以回帖 登录 | 点击这里注册

本版积分规则

小黑屋|Archiver|phpcms网站管理系统 ( 京ICP备14011169 )

GMT+8, 2018-8-17 12:11 , Processed in 0.258412 second(s), 10 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表