上一篇文章主要说明充值的执行逻辑和控制层的设计,这篇文章主要讨论充值业务层的具体实现。
正如上一篇文章所说到的,生成订单需要如下几个步骤:
(1)实例化操作人 (操作人)
(2)实例化产品模型 (获取产品的详细信息)
(3)实例化订单模型 (生成一笔状态为“交易中”的订单)
(4)实例化支付平台模型 (把生成的订单返回给客户端,并引导用于去充值平台)
一个完整的充值系统需要完善以上4个基本的模型类。详细的UML图如下:
支付平台依赖操作人类,订单类,产品类,助手类。
支付平台工厂类class Model_Payment
{
// 对应关系为:'渠道ID' => '渠道类名'
private static $_channels = array(
'10' => 'alipay',
'20' => 'applestore'
);
// 缺省的充值渠道
const DEFAULT_CHANNEL_ID = 40;
public function factory($channelId)
{
if isset(self::$_channels[$channelId]) : throws('渠道不合法')
class Model_Payment
{
// 对应关系为:'渠道ID' => '渠道类名'
private static $_channels = array(
'10' => 'alipay',
'20' => 'applestore'
);
// 缺省的充值渠道
const DEFAULT_CHANNEL_ID = 40;
public function factory($channelId)
{
if isset(self::$_channels[$channelId]) : throws('渠道不合法')