Sun Java System Content Delivery Server 集成和配置指南
|
  
|
您无需更改记帐实现即可使用 Content Delivery Server。可以使用记帐适配器将 Content Delivery Server 配置为使用当前记帐系统。
用于后付费或异步记帐的记帐适配器可将 Content Delivery Server 提供的信息转换为记帐系统所需的格式。Content Delivery Server 会将记帐事件发布到 JMS 队列中。可以使用 JMS 客户机接收这些记帐事件。JMS 客户机使用记帐适配器格式化记帐系统的信息。
在处理购买时,Content Delivery Server 调用用于预付费或同步记帐的记帐适配器。该适配器可以动态地更改内容价格(如果需要),在实时模式下验证购买,或者通过外部系统(如收费短消息 (premium SMS))来管理记帐。
如果所提供的适配器不能满足您的需要,则可以使用事件服务 API 来创建自己的后付费记帐适配器。可以使用记帐 API 来创建自己的预付费记帐适配器。有关这些 API 的信息,请参见《Sun Java
System Content Delivery Server 5.1 定制指南》。
本章包含以下主题:
2.1 提供的记帐适配器
对于后付费记帐,Content Delivery Server 提供了后付费服务。该服务包括一个 JMS 客户机,用于处理事件队列中的记帐事件,并且生成一个信息文件来帮助记帐系统向订户收费。该文件的格式可以是 XML、逗号分隔值 (comma-separated values, CSV) 或名-值对。请参见 2.2 使用后付费服务。
未提供预付费记帐适配器。
2.2 使用后付费服务
后付费服务支持在订户购买了内容后再向订户收费的记帐系统。如果记帐系统支持后付费记帐并处理以下格式之一的记录,则可以使用后付费服务而不是定制的记帐适配器:
2.2.1 配置后付费服务
要使 Content Delivery Server 支持后付费记帐模型,请配置后付费服务。所使用的处理程序为 PostpaidDefaultHandler。要配置后付费服务,请执行以下操作:
1. 打开 $CDS_HOME/deployment/deployment-name/conf/PostpaidService.properties 文件以进行编辑。
设置以下属性:
- postpaid.handler.PostpaidDefaultHandler.events。指定希望处理程序处理的记帐事件。有关有效事件的列表,请参见文件中的注释。
- postpaid.handler.PostpaidDefaultHandler.billingevent.process_free_downloads。设置为 true 可处理免费内容的事件。设置为 false 则不处理免费内容的事件。
- postpaid.handler.PostpaidDefaultHandler.billingevent.process_prepay_events。设置 true 可处理后付费内容的事件。设置为 false 则不处理后付费内容的事件。
- postpaid.handler.PostpaidDefaultHandler.output.header。要在输出文件顶部添加标题,请参见该文件中的注释,以了解有关设置此属性的信息。
2. (可选)根据需要,为记帐记录设置归档文件:
- 要禁止生成归档文件,而将记帐记录添加到单个文件中(此文件将在服务停止之前不断增长),请设置以下属性(如下所示):
postpaid.handler.PostpaidDefaultHandler.output.refresh.frequency=
postpaid.handler.PostpaidDefaultHandler.output.refresh.size=0
|
- 要在每次写入特定数量的记录时创建归档文件,请将 postpaid.handler.PostpaidDefaultHandler.output.refresh.size 设置为此记录数。
- 要定期创建归档文件,请将 postpaid.handler.PostpaidDefaultHandler.output.refresh.frequency 属性设置为以下值之一:
- daily。每天都在启动后付费服务的那个时间生成一个新文件。例如,如果该服务在 02:07:00 启动,则在每天的 02:07:00 都生成一个新文件。
- weekly。每周都在启动后付费服务的同一天和同一时间生成一个新文件。例如,如果在星期四的 22:30:57 启动该服务,则在每个星期四的 22:30:57 都生成一个新文件。
- monthly。每月都在启动后付费服务的同一天和同一时间生成一个新文件。例如,如果在 3 月 14 日的 21:23:34 启动该服务,则在每月 14 日的 21:23:34 都生成一个新文件。
- yearly。每年都在启动后付费服务的同一天和同一时间生成一个新文件。例如,如果在 1 月 6 日的 04:10:05 启动该服务,则在每年 1 月 6 日的 04:10:05 都生成一个新文件。
注 - 停止并重新启动后付费服务后,将重新开始文件写入的周期。例如,如果频率设置为每周,后付费服务最初在星期一启动,然后在星期四重新启动,则将在下一个星期四写入下一个文件,而不是在下一个星期一写入。
|
3. (可选)设置以下属性以恢复过去的记帐记录:
- postpaid.handler.PostpaidDefaultHandler.recovery.enabled。要恢复过去的记帐记录,请将此属性设置为 true。如果不希望恢复过去的记帐记录,请将其设置为 false。
- postpaid.handler.PostpaidDefaultHandler.recovery.starting.point。将此属性设置为表示恢复记录的时间段起始点的时间戳。必须将此值的格式指定为 mm-dd-yyyy hh:mm:ss,例如,01-01-2004 00:00:01。
- postpaid.handler.PostpaidDefaultHandler.recovery.stopping.point。将此属性设置为表示恢复记录的时间段结束点的时间戳。必须将此值的格式指定为 mm-dd-yyyy hh:mm:ss,例如,01-01-2004 23:59:59。
- postpaid.handler.PostpaidDefaultHandler.recovery.file.suffix。将此属性设置为一个字符串,该字符串将附加到所创建的恢复文件后面。默认值为 .recover。
如果启用恢复,则在下次启动后付费服务时,指定时间段的记帐记录将写入 $CDS_HOME/deployment/deployment-name/conf/Postpaid.recover 文件。完成恢复进程后,文件将被重命名为 Postpaid.recover.timestamp。
4. 要控制记帐记录文件的创建,请设置 postpaid.handler.PostpaidDefaultHandler.output.refresh.empty_file 属性。
将在以下时间生成记帐记录文件:
如果无论是否存在记帐记录都要生成文件,请将该属性设置为 true。如果仅在记帐记录存在时才生成文件,请将该属性设置为 false。
如果缺少该属性,则默认值为 true。如果将该属性设置为 true 或 false 以外的值,则假定值为 false。
5. 要定义希望生成的记录,请将 postpaid.handler.PostpaidDefaultHandler.output.template.file 属性设置为用于定义这些记录的文件的全限定名称。
使用以下值中的一个:
- deployment/deployment-name/conf/resources/default_record.xsl。与 PostpaidDefaultHandler 一起使用此文件可以生成名-值记录。
- deployment/deployment-name/conf/resources/xml_record.xsl。与 PostpaidDefaultHandler 一起使用此文件可以生成 XML 记录。
- deployment/deployment-name/conf/resources/csv_record.xsl。与 PostpaidCSVHandler 一起使用此文件可以生成 CSV 记录。
6. 保存对 PostpaidService.properties 文件所做的更改。
2.2.2 记帐事件参数
下表显示了为每个记帐事件提供的信息:
表 2-1 记帐事件参数
参数
|
描述
|
billing-ticket
|
该事务的记帐凭单。
|
campaign_coupon
|
活动的礼券代号。
|
campaign_id
|
用于标识活动的字符串。
|
catalog-res-id
|
用于标识内容版的字符串。
|
content_binary_mimetype
|
内容的 MIME 类型。
|
content_class_id
|
用于标识内容项的字符串。
|
content_description
|
内容的详细描述。
|
content_drm_type_id
|
标识用于保护内容的 DRM 方法的字符串。
|
content_short_description
|
内容的简短描述。
|
content-id
|
用于标识所购买内容的字符串。此值与 catalog-res-id 相同。
|
content_name
|
内容的名称。
|
current-status
|
该事务的当前状态。
|
date
|
事务发生的日期。
|
destination-address
|
将内容发送到的地址,例如请求内容的订户的 MSISDN。
|
developer-content-id
|
开发者用于标识内容的唯一标识符。
|
developer-id
|
用于标识内容开发者的字符串。
|
developer_name
|
提交内容的开发者姓名。
|
download-confirm
|
用于指明成功下载后是否需要确认的标志。
|
download-count
|
根据支付的价格确定的内容下载次数。
|
download-current-count
|
此内容的订户已下载次数(包括本次)。
|
download-expiration
|
用于指明下载时段是否已过期的标志。
|
download-period
|
允许下载内容而无需向订户收取其他费用的时段。
|
download-price
|
所购买内容的价格。
|
download-purchase
|
用于指明购买请求的标志。
|
download-recurring
|
用于指明订户是否为每次下载付费的标志。
|
event-log
|
事件日志的名称。
|
event-msg
|
随事件一起发出的消息。
|
event-source-type-id
|
用于标识事件源的编号。
|
event-type
|
发生的事件的数字表示。
|
event-type-id
|
用于标识已发生事件类型的字符串。
|
external_content_id
|
用于向记帐系统标识内容的字符串。
|
external_group_id
|
用于标识内容所属的组的字符串。
|
external-request-text
|
订户请求的文本,例如,MO 推送请求内容。
|
gift_message
|
礼品中包含的消息。
|
gifted_current_downloads
|
接收者下载此礼品的次数(包括本次)。
|
gifted_current_subscriptions
|
接收者使用的订阅时段数(包括本时段)。
|
gift_download_date
|
接收者第一次下载礼品的日期。
|
gift_expiration_date
|
接收者领取礼品的最后期限。
|
gift_purchase_date
|
送礼人购买礼品的日期。
|
gifted_downloads
|
礼品中包含的下载次数。
|
gifted_subscriptions
|
礼品中包含的订阅时段数。
|
is_on_device
|
用于指明内容是否已存在于设备中的标志。
|
is-prepay
|
用于指明订户是否为内容预付费的标志。
|
limited-time-end
|
可以使用内容的结束日期。
|
limited-time-price
|
在指定时间段内使用内容时收取的价格。
|
limited-time-start
|
可以使用内容的开始日期。
|
locale
|
订户的语言环境。
|
MSISDN
|
订户设备的 MSISDN。
|
pricingoption_key
|
用于标识价格选项的字符串。
|
pricingoption_name
|
价格选项的名称。
|
push-msgtext
|
发送到订户设备的消息或电子邮件。
|
recipient_locale_code
|
内容的预定接收者的语言环境。
|
recipient_login_id
|
内容的预定接收者的登录 ID。
|
recipient_mobile_id
|
内容的预定接收者的移动 ID。
|
recipient_unique_device_id
|
预定接收者的唯一设备 ID。
|
server-id
|
用于标识 Vending Manager 的字符串。
|
session-id
|
用于标识订户会话的字符串。
|
source-address
|
从中接收消息的外部实体的地址,例如,SMSC 的 MSISDN。
|
subscription-expiration
|
订阅时段结束的日期。
|
subscription-frequency
|
支付订阅费用的时间间隔。
|
subscription-recurring
|
用于指明当前订阅时段结束后是否自动对下个时段向订户收费的标志。
|
subscription-price
|
订阅时段的价格。
|
timestamp
|
事务发生的时间。
|
unique-device-id
|
用于唯一标识所用设备的字符串。
|
usage-count
|
根据为 usage-price 指定的价格而确定的使用次数。
|
usage-price
|
根据为 usage-count 指定的使用次数而确定的费用。
|
user-id
|
用于标识启动事务的用户的字符串。
|
username
|
订户的登录名。
|
vending-res-id
|
Vending Manager 用于标识内容的字符串。
|
2.3 配置外部内容和组 ID
如果记帐系统要求使用 Content Delivery Server 内容标识符以外的内容来标识内容,请按照以下步骤配置系统的外部内容和组 ID:
1. 在 CDS.properties 文件中,将 common.external_content_id.enable 属性设置为 true。
该文件位于 $CDS_HOME/deployment/deployment-name/conf 目录中。如果此属性为 true,存储内容时管理员将收到提供记帐系统已知的内容 ID 和组 ID 的提示。
2. 打开 external_content_id_selection.xml 文件进行编辑。
此文件位于 $CDS_HOME/deployment/deployment-name/conf/resources 目录中。
3. 为 content_id 元素下的每个已知内容 ID 添加一个 entry 元素,例如:
<content_id>
<entry default="true>ID-1A</entry>
<entry>ID-1B</entry>
<entry>ID-1C</entry>
</content_id>
|
为内容指定外部内容 ID 时,将向管理员提供此列表。对于自动存储的内容,外部内容 ID 将被设置为包含属性 default=true 的 entry 元素的值。
4. 为 group_id 元素下的每个已知组 ID 添加一个 entry 元素,例如:
<group_id>
<entry>Games</entry>
<entry>Pictures</entry>
</group_id>
|
为内容指定组 ID 时,将向管理员提供此列表。
5. 保存对 external_content_id_selection.xml 文件所做的更改。
Sun Java System Content Delivery Server 集成和配置指南
|
820-5379-10
|
  
|
版权所有 © 2008, Sun Microsystems, Inc. 保留所有权利