业务计量数据推送
功能介绍
ISV在云市场发布按量计费API产品后,租户购买(开通)按量计费API产品,并调用API进行消费,对于调用API产生的业务使用量,以视频服务的点播流量和视频转码的输出视频时长为例,业务按照流量(字节)和转码视频的时长(秒)进行计费,ISV通过接口推送使用量数据给云市场,云市场对租户账户进行扣费。
调用流程图如下:
请求消息
参数 |
是否必选 |
参数类型 |
取值范围 |
描述 |
---|---|---|---|---|
usageRecords |
M |
List<UsageRecord> |
- |
业务使用量纪录集合,UsageRecord个数不得超过100。 |
参数 |
是否必选 |
参数类型 |
取值范围 |
描述 |
---|---|---|---|---|
instanceId |
M |
String |
64 |
产品实例ID |
recordTime |
M |
String |
17 |
使用量记录生成时间(UTC),格式为: yyyyMMdd'T'HHmmss'Z' |
beginTime |
M |
String |
17 |
计量开始时间(UTC),格式为: yyyyMMdd'T'HHmmss'Z' |
endTime |
M |
String |
17 |
计量结束时间(UTC),格式为: yyyyMMdd'T'HHmmss'Z' |
usageEntity |
M |
UsageEntity |
- |
计费实体集合 |
参数 |
是否必选 |
参数类型 |
取值范围 |
描述 |
---|---|---|---|---|
Duration |
O |
Long |
8 |
时长(单位:秒):
|
downStream |
O |
Long |
8 |
下行流量(单位:字节):
|
quantity |
O |
Long |
8 |
使用数量(单位:个): 在费用中心消费明细页面,以个为单位展示用户单位时间使用量 |
times |
O |
Long |
8 |
使用次数(单位:次): 在费用中心消费明细页面,以次为单位展示用户单位时间使用量 |
pieces |
O |
Long |
8 |
使用张数(单位:次): 在费用中心消费明细页面,以张为单位展示用户单位时间使用量 |
peakBandwidth |
O |
Long |
8 |
峰值带宽(单位:bps): 每日峰值带宽速度,在费用中心消费明细页面,以bps为单位展示用户单位时间(日)使用量。 |
storage |
O |
Long |
8 |
存储空间(单位:Byte): 在费用中心消费明细页面,以Byte为单位展示用户单位时间使用量。 |
VODTranscodeSmooth |
O |
Long |
8 |
点播转码-普通-流畅(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
VODTranscodeSD |
O |
Long |
8 |
点播转码-普通-标清(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
VODTranscodeHD |
O |
Long |
8 |
点播转码-普通-高清(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
VODTranscodeUC |
O |
Long |
8 |
点播转码-普通-超清(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
VODTranscodeSmoothEP |
O |
Long |
8 |
点播转码-感知增强-流畅(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
VODTranscodeSDEP |
O |
Long |
8 |
点播转码-感知增强-标清(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
VODTranscodeHDEP |
O |
Long |
8 |
点播转码-感知增强-高清(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
VODTranscodeUCEP |
O |
Long |
8 |
点播转码-感知增强-超清(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
externalNetworkTraffic |
O |
Long |
8 |
外网流量(单位:Byte): 在费用中心消费明细页面,以Byte为单位展示用户单位时间使用量。 |
liveVideoTranscodeSmooth |
O |
Long |
8 |
直播转码-普通-流畅(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
liveVideoTranscodeSD |
O |
Long |
8 |
直播转码-普通-标清(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
liveVideoTranscodeHD |
O |
Long |
8 |
直播转码-普通-高清(单位:秒): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
liveVideoTranscodeUC |
O |
Long |
8 |
直播转码-普通-超清(单位:秒): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
liveVideoTranscodeSmoothEP |
O |
Long |
8 |
直播转码-感知增强-流畅(单位:秒): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
liveVideoTranscodeSDEP |
O |
Long |
8 |
直播转码-感知增强-标清(单位:秒): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
liveVideoTranscodeHDEP |
O |
Long |
8 |
直播转码-感知增强-高清(单位:秒): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
liveVideoTranscodeUCEP |
O |
Long |
8 |
直播转码-感知增强-超清(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
microphoneUsageDur |
O |
Long |
8 |
上麦时长(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
streamMixDurSD |
O |
Long |
8 |
混流时长-标清(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
streamMixDurHD |
O |
Long |
8 |
混流时长-高清(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
screenShot |
O |
Long |
8 |
截图(单位:张): 在费用中心消费明细页面,以张为单位展示用户单位时间使用量。 |
pornIdentifyByAlgorithm |
O |
Long |
8 |
鉴黄-算法确定(单位:张): 在费用中心消费明细页面,以张为单位展示用户单位时间(日)使用量。 |
pornIdentifyByHuman |
O |
Long |
8 |
鉴黄-待用户确认(单位:张): 在费用中心消费明细页面,以张为单位展示用户单位时间(日)使用量。 |
metadata |
O |
Long |
8 |
元信息(单位:次): 在费用中心消费明细页面,以次为单位展示用户单位时间使用量。 |
watermark |
O |
Long |
8 |
鉴黄-待用户确认(单位:次): 在费用中心消费明细页面,以次为单位展示用户单位时间使用量。 |
videoTransEncaps |
O |
Long |
8 |
转封装(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoToAudio |
O |
Long |
8 |
转音频(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
liveStreamEdit |
O |
Long |
8 |
流拆条(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
cloudBroadcast |
O |
Long |
8 |
云轮播(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
cloudSwitchboard |
O |
Long |
8 |
云导播(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
cloudFastVideoEdit |
O |
Long |
8 |
云快编(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
otherRequests |
O |
Long |
8 |
其他请求(单位:次): 在费用中心消费明细页面,以次为单位展示用户单位时间使用量。 |
videoTranscode_H264_4k |
O |
Long |
8 |
普通-H.264-4K(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H264_2k |
O |
Long |
8 |
普通-H.264-2K(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscodeH264_HD |
O |
Long |
8 |
普通-H.264-HD(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H264_SD |
O |
Long |
8 |
普通-H.264-SD(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H264_LD |
O |
Long |
8 |
普通-H.264-LD(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H265_4k |
O |
Long |
8 |
普通-H.265-4K(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H265_2k |
O |
Long |
8 |
普通-H.265-2K(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscodeH265_HD |
O |
Long |
8 |
普通-H.265-HD(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H265_SD |
O |
Long |
8 |
普通-H.265-SD(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H265_LD |
O |
Long |
8 |
普通-H.265-LD(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H264_4k_EP |
O |
Long |
8 |
感知增强-H.264-4K(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H264_2k_EP |
O |
Long |
8 |
感知增强-H.264-2K(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscodeH264_HD_EP |
O |
Long |
8 |
感知增强-H.264-HD(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H264_SD_EP |
O |
Long |
8 |
感知增强-H.264-SD(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H264_LD_EP |
O |
Long |
8 |
感知增强-H.264-LD(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H265_4k_EP |
O |
Long |
8 |
感知增强-H.265-4K(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H265_2k_EP |
O |
Long |
8 |
感知增强-H.265-2K(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscodeH265_HD_EP |
O |
Long |
8 |
感知增强-H.265-HD(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H265_SD_EP |
O |
Long |
8 |
感知增强-H.265-SD(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H265_LD_EP |
O |
Long |
8 |
感知增强-H.265-LD(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H264_4k_Accel |
O |
Long |
8 |
倍速-H.264-4K(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscode_H264_2k_Accel |
O |
Long |
8 |
倍速-H.264-2K(单位:秒): 在费用中心消费明细页面,以秒为单位展示用户单位时间使用量。 |
videoTranscodeH264_HD_Accel |
O |
Long |
8 |
倍速-H.264-HD(单位:分钟): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
videoTranscode_H264_SD_ Accel |
O |
Long |
8 |
倍速-H.264-SD(单位:分钟): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
videoTranscode_H264_LD_ Accel |
O |
Long |
8 |
倍速-H.264-LD(单位:分钟): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
videoTranscode_H265_4k_ Accel |
O |
Long |
8 |
倍速-H.265-4K(单位:分钟): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
videoTranscode_H265_2k_ Accel |
O |
Long |
8 |
倍速-H.265-2K(单位:分钟): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
videoTranscodeH265_HD_ Accel |
O |
Long |
8 |
倍速-H.265-HD(单位:分钟): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
videoTranscode_H265_SD_ Accel |
O |
Long |
8 |
倍速-H.265-SD(单位:分钟): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
videoTranscode_H265_LD_ Accel |
O |
Long |
8 |
倍速-H.265-LD(单位:分钟): 在费用中心消费明细页面,以分钟为单位展示用户单位时间使用量。 |
请求注意事项:
- 需要对mkt.myhuaweicloud.com HTTPS证书进行强校验,不能忽略证书校验,从而保证调用的是真实而非伪造的云市场服务。
- 华为云云市场以instanceId为维度,对计量数据推送接口进行流控(对于单个instanceId,请求频次要求1次/分钟),每次请求最大计量记录数100条。
- 计量记录的周期(endTime减去startTime的差值)必须=1小时,endTime和startTime必须是整点,例如:20170107T090000Z。
- startTime必须大于API类产品发布上架时间,recordTime必须大于endTime,endTime必须小于当前时间。
请求示例
POST /v1.0/{partner_id}/billing/bill-mgr/push-usage-data Host: Host Server Content-Type: application/json X-Sdk-Date: request time Authorization: authorization { “usageRecords”:[{ “instanceId”:” 455be31e-6771-4d6f-b8c1-7e8bdb10c21f”, “recordTime”:”20170107T153030Z”, “beginTime”:”20170107T090000Z”, “endTime”:”20170107T110000Z”, “usageEntity”: { “Duration”:3524 } },{ “instanceId”:” f98081a9-8254-41fd-a489-bb74dac3c9a5”, “recordTime”:”20170107T155031Z”, “beginTime”:”20170107T130000Z”, “endTime”:”20170107T140000Z”, “usageEntity”: { “DownStream”: 1073741824 } }, …] }
响应消息
结构体
参数 |
是否必选 |
参数类型 |
取值范围 |
描述 |
---|---|---|---|---|
usageRecord |
O |
UsageRecord |
- |
业务使用量记录。 具体请参考表3。 |
productUrl |
O |
String |
1024 |
业务使用量记录对应的产品链接。当产品在售时,返回产品链接。产品链接不需要登录即可查看。 |
snapshotUrl |
O |
String |
1024 |
业务使用量记录对应的产品快照链接。当产品下架时,返回产品快照链接。产品快照链接需要登录才能查看。 |
错误码
http状态码 |
error_code |
error_msg |
描述 |
---|---|---|---|
200 |
CBC.0000 |
Success. |
请求成功 |
500 |
CBC.0999 |
System internal error. |
其它服务内部错误 |
500 |
CBC.0100 |
Failure of input parameter |
输入参数校验失败 参数范围超限,非法值或格式错误 |
400 |
CBC.0101 |
Invalid parameter |
参数无效 输入非接口定义的参数,多参数或少必选参数 |
400 |
CBC.0199 |
Request parameter error |
请求参数错误 其它参数错误 |
401 |
CBC.0150 |
Illegal operation |
通常是进行了不被授权的操作,例如instanceId对应的产品不是AK/SK对应的ISV发布的 |
401 |
CBC.0151 |
No authority |
无API访问权限 token非ISV角色 |
401 |
CBC.0154 |
Illegal token |
鉴权失败 token无效 |
406 |
CBC. 0250 |
Access frequency overlimit |
访问频率超限 |
500 |
CBC.9001 |
Instance ID not found. |
实例ID不存在(商品续费、过期、资源释放接口可能返回) |
500 |
CBC.9002 |
Invalid usage enties. |
计量实体无效 |
500 |
CBC.9003 |
Usage records extends size limit. |
计量记录数超出限制(100条) |
500 |
CBC.9004 |
Record beginTime extends Limit. |
计量记录的起始时间超出有效期(当前时间21天以内) |
其中,仅在resultCode为CBC.0100、CBC.0150、CBC.0250、CBC.9001、CBC.9002、CBC.9004、CBC.9005时,失败响应中包含extra_info字段。失败响应中resultMsg除字段描述,还包含响应失败详情。您可以结合失败详情和extra_info内容定位并解决问题。
成功响应示例
HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Content-Length: length Date: response time { "resultCode": "CBC.0000", "resultMsg": "success" }
失败响应示例
HTTP/1.1 401 UnauthorizedContent-Type: application/json;charset=UTF-8Content-Length: lengthDate: response time { "resultCode": "CBC.0150", "resultMsg": "Illegal operation. param[isvId] and param[instanceId] does not match.", "extraInfo": { "usageRecord": { "instanceId": "xxxxxxxxxxxxxxxxxxxxxxxxxx", "recordTime": "20180906T083929Z", "beginTime": "20180906T060000Z", "endTime": "20180906T070000Z", "usageEntity": { "times": "2" } }, "productUrl": "https://market.huaweicloud.com/product/00301-196117-0--0" } }
