全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
流量服务

流量充值API(Charge)---Python

更新时间:2018-01-04 17:38:46

流量直冲接口(Charge)

步骤 1 创建阿里云账号

为了访问语音服务,您需要有一个阿里云账号。如果没有,可首先按照如下步骤创建阿里云账号:

  1. 访问阿里云 官方网站,单击页面上的 免费注册 按钮。
  2. 按照屏幕提示完成注册流程并进行企业实名认证语音服务只支持企业实名认证用户使用。为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里

步骤 2 获取阿里云访问密钥

为了使用语音文本单呼API-JAVA SDK,您必须申请阿里云的访问密钥。

阿里云访问秘钥是阿里云为用户使用 API(非控制台)来访问其云资源设计的“安全口令”。您可以用它来签名 API 请求内容以通过服务端的安全验证。

该访问秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用。每个阿里云用户可以创建多对访问秘钥,且可随时启用(Active)、禁用(Inactive)或者删除已经生成的访问秘钥对。

您可以通过阿里云控制台的 秘钥管理页面 创建、管理所有的访问秘钥对,且保证它处于“启用”状态。由于访问秘钥是阿里云对 API 请求进行安全验证的关键因子,请妥善保管你的访问秘钥。如果某些秘钥对出现泄漏风险,建议及时删除该秘钥对并生成新的替代秘钥对。

步骤 3 流量充值整体流程及操作步骤

流量充值整体流程及操作步骤

参数说明

入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
PhoneNumber String 必须 13010112022 充值手机号
Grade String 必须 50 充值档位(可以通过档位查询接口查询当前手机号支持的档位)
IsProvince Boolean 必须 false 是否分省,默认为false
Reason String 可选 活动积分兑换 充值原因备注
OutId String 必须 abcdefgh 外部流水扩展字段,流量服务中会根据OutId做幂等,防止对同一流水的多次充值请求
scope String 可选 0 取值有0和1两种情况,0的代表是全国流量,1代表是省内流量 ,不填默认为0
出参列表
出参名称 出参类型 样例取值 参数说明
RequestId String 8906582E-6722 请求ID
Code String OK 状态码-返回OK代表请求成功,其他错误码详见错误码列表
Message String 请求成功 状态码的描述

技术对接步骤

1:下载SDK工具包

SDK工具包中一共包含了2个目录:

aliyun-python-sdk-core:阿里云api调用的核心代码库,python版本。

alicom-python-sdk-dycdpapi:流量直冲相关接口调用的客户端以及示例代码。

确定本机已经安装了python,版本要求:2.6.5 或以上版本, 进入aliyun-python-sdk-core 执行:python setup.py install。

运行demo示例。进入alicom-python-sdk-dycdpapi目录执行:python demo.py

SDK&DEMO[下载地址]

2: 编写样例程序
  1. from aliyunsdkdycdpapi.request.v20170525 import ChargeRequest
  2. from aliyunsdkdycdpapi.request.v20170525 import QueryChargeDetailRequest
  3. from aliyunsdkdycdpapi.request.v20170525 import QueryGradesRequest
  4. from aliyunsdkcore.client import AcsClient
  5. import uuid
  6. """
  7. 流量API产品充值代码样例
  8. Created on 2017-06-12
  9. """
  10. #暂时不支持多Region,只支持杭州Region
  11. REGION = "cn-hangzhou"
  12. # ACCESS_KEY_ID/ACCESS_KEY_SECRET 根据实际申请的账号信息进行替换
  13. ACCESS_KEY_ID = "yourAccessKeyId"
  14. ACCESS_KEY_SECRET = "yourAccessKeySecret"
  15. acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
  16. def charge(business_id, mobile, grade, is_province='false', reason=None):
  17. chargeRequest = ChargeRequest.ChargeRequest()
  18. # 设置业务请求流水号,必填。后端服务基于此标识区分是否重复请求的判断
  19. chargeRequest.set_OutId(business_id)
  20. # 需要充值的手机号码,必填。
  21. chargeRequest.set_PhoneNumber(mobile)
  22. # 需要充值的档位,必填。
  23. chargeRequest.set_Grade(grade)
  24. # 是否需要指定分省通道,必填。
  25. chargeRequest.set_IsProvince(is_province)
  26. # 充值原因,可空
  27. chargeRequest.set_Reason(reason)
  28. chargeResponse = acs_client.do_action_with_exception(chargeRequest)
  29. return chargeResponse
  30. __business_id = uuid.uuid1()
  31. print __business_id
  32. print charge(__business_id, "13646812878", "1024", "false", "demo request")

错误码列表

Code 描述
OK 请求成功
isp.RAM_PERMISSION_DENY RAM权限DENY
isv.OUT_OF_SERVICE 业务停机
isv.PRODUCT_UN_SUBSCRIPT 未开通云通信产品的阿里云客户
isv.OUT_OF_SERVICE 业务停机
isv.PRODUCT_UNSUBSCRIBE 产品未开通
isv.ACCOUNT_NOT_EXISTS 账户不存在
isv.ACCOUNT_ABNORMAL 账户异常
isv.VOICE_FILE_ILLEGAL 语音文件不合法
isv.DISPLAY_NUMBER_ILLEGAL 号显不合法
isv.INVALID_PARAMETERS 参数异常
isp.SYSTEM_ERROR 系统错误
isv.MOBILE_NUMBER_ILLEGAL 号码格式非法
isv.BUSINESS_LIMIT_CONTROL 触发流控
isp.NO_AVAILABLE_CHANNEL 无可用渠道
isv.USER_NOT_PRIVILEGE_PROVINCE 用户无分省调用权限
isp.USER_NOT_EXIST 用户不存在
isv.GRADE_ILLEGAL 不支持的充值档位
isv.OPERATOR_UNKNOWN 号码归属运营商不支持
isp.OPERATOR_SHUTDOWN 运营商临时封停
isv.OPERATOR_DOWNTIME 运营商月末维护
isp.FLOW_PAYMENT_ERROR 账户扣款失败
isv.RECORD_HAS_EXISTS 已存在该流水号的充值记录
isv.RECORD_NO_FIND 不存在对应流水号的充值记录
本文导读目录