在用Drupal系统的Ubercart搭建网上销售平台"Business Directory Sale Center"这个英文网站后,我们又开始搭建一个中文的“名录数据购买中心”,因为是面向中国客户,所以就选用了国内用户量最大的网上支付方式-支付宝(AliPay)。
在以前用的MediaWiki、Drupal等国外开源系统中,很少看到中国人的贡献,不过Ubercart配套的alipay模块是国内老葛做的,可以去这里下载:http://drupal.org/project/uc_alipay 。
在这个中文站中只保留了支付宝,将其他的支付方式(包括PayPal)全部关闭,商品定价也全部都是人民币元。实际运作中,估计还是要保留银行卡转账等方式,由客服人员人工来核对、设置权限。
这个模块安装去来很简单,测试也不需要专门的支付宝测试系统,直接设置一个1分钱的商品,然后购买、支付就可以,都是实际数据。
刚开始我们以为这个模块与前面用到的PayPal类似,还需要在Ubercart的Conditional actions中添加一个Trigger(订单状态发生改变时)和一个Action(设置订单状态为已完成),但这样设置后反而引起从支付宝完成付款页面返回到我们网站的时候超时报错,通过日志检查发现是不断自动修改订单状态直到超时,于是取消了这个触发条件动作,就可以正常使用付款功能了。
另外我们还根据网站的实际需要,对这个模块进行了少量修改:
- 默认是用户选择“担保交易”或者“即时到帐”(trade_create_by_buyer),我们改成了只能是“即时到帐”(create_direct_pay_by_user);
- 把提示从:“买家通过支付宝担保方式付款@amount元,等待卖家发货”改为:“买家通过支付宝即时到帐方式付款@amount元,现在可以自行进入“我的帐户”下载购买的文件”。
这些修改都不难,alipay模块本身只有几个php小文件,结合支付宝API的技术文档,修改uc_alipay.module和uc_alipay.pages.inc中少数几行代码就可以。
这个中文站的支付宝支付问题就解决了,不过Ubercart有些细节(例如先填写中文名、再填写中文姓)对中国人、中文来说有些不太习惯,还没有找到可以修改的地方,待以后完善。
如果要试一试我上面记录的这些,请来这里看看:http://goumai.mingluji.com 。
评论