流量发放API(Charge)---JAVA该怎么做?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

流量发放API(Charge)---JAVA该怎么做?

猫饭先生 2017-10-25 13:54:01 1266


步骤 1 创建阿里云账号


为了访问流量服务,您需要有一个阿里云账号。如果没有,可首先按照如下步骤创建阿里云账号:
  1. 访问阿里云 官方网站,单击页面上的 免费注册 按钮。
  2. 按照屏幕提示完成注册流程并进行企业实名认证

流量服务只支持企业实名认证用户使用。为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里

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


为了使用流量发放API-JAVA SDK,您必须申请阿里云的访问密钥。
阿里云访问秘钥是阿里云为用户使用 API(非控制台)来访问其云资源设计的“安全口令”。您可以用它来签名 API 请求内容以通过服务端的安全验证。
该访问秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用。每个阿里云用户可以创建多对访问秘钥,且可随时启用(Active)、禁用(Inactive)或者删除已经生成的访问秘钥对。
您可以通过阿里云控制台的 秘钥管理页面 创建、管理所有的访问秘钥对,且保证它处于“启用”状态。由于访问秘钥是阿里云对 API 请求进行安全验证的关键因子,请妥善保管你的访问秘钥。如果某些秘钥对出现泄漏风险,建议及时删除该秘钥对并生成新的替代秘钥对。

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


流量发放整体流程及操作步骤

参数说明



入参列表

参数名称参数类型必填与否样例取值参数说明
PhoneNumberString必须13010112022充值手机号
GradeString必须50充值档位(可以通过档位查询接口查询当前手机号支持的档位)
IsProvinceBoolean必须false是否分省,默认为false,如果需要分省需要找业务接口人申请该字段的权限
ReasonString可选活动积分兑换充值原因备注
OutIdString必须abcdefgh外部流水扩展字段,流量服务中会根据OutId做幂等,防止对同一流水的多次充值请求
scopeString可选0取值有0和1两种情况,0的代表是全国流量,1代表是省内流量 ,不填默认为0


出参列表

出参名称出参类型样例取值参数说明
RequestIdString8906582E-6722请求ID
CodeStringOK状态码-返回OK代表请求成功,其他错误码详见错误码列表
MessageString请求成功状态码的描述


技术对接步骤



1:下载SDK工具包


SDK工具包中一共包含了2个类库,一个aliyun-java-sdk-core包,另外一个是alicom-dycdp-api包,将这两个包执行mvn package命令或者mvn deploy命令打包出相应的jar包,添加到工程类库中依赖使用。
SDK&DEMO [ 下载地址]

2: 编写样例程序

  1. [backcolor=transparent]        [backcolor=transparent]//设置访问超时时间
  2. [backcolor=transparent]        [backcolor=transparent]System[backcolor=transparent].[backcolor=transparent]setProperty[backcolor=transparent]([backcolor=transparent]"sun.net.client.defaultConnectTimeout"[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]"10000"[backcolor=transparent]);
  3. [backcolor=transparent]        [backcolor=transparent]System[backcolor=transparent].[backcolor=transparent]setProperty[backcolor=transparent]([backcolor=transparent]"sun.net.client.defaultReadTimeout"[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]"10000"[backcolor=transparent]);
  4. [backcolor=transparent]        [backcolor=transparent]//云通信产品-流量API产品名
  5. [backcolor=transparent]        [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]String[backcolor=transparent] product [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"Dycdpapi"[backcolor=transparent];
  6. [backcolor=transparent]        [backcolor=transparent]//云通信产品-流量API产品域名
  7. [backcolor=transparent]        [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]String[backcolor=transparent] domain [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"dycdpapi.aliyuncs.com"[backcolor=transparent];
  8. [backcolor=transparent]        [backcolor=transparent]//需要替换成你的AK信息
  9. [backcolor=transparent]        [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]String[backcolor=transparent] accessKeyId [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"yourAccessKeyId"[backcolor=transparent];
  10. [backcolor=transparent]        [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]String[backcolor=transparent] accessKeySecret [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"yourAccessKeySecret"[backcolor=transparent];
  11. [backcolor=transparent]        [backcolor=transparent]//初始化acsClient
  12. [backcolor=transparent]        [backcolor=transparent]IClientProfile[backcolor=transparent] profile [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]DefaultProfile[backcolor=transparent].[backcolor=transparent]getProfile[backcolor=transparent]([backcolor=transparent]"cn-hangzhou"[backcolor=transparent],[backcolor=transparent] accessKeyId[backcolor=transparent],[backcolor=transparent] accessKeySecret[backcolor=transparent]);
  13. [backcolor=transparent]        [backcolor=transparent]DefaultProfile[backcolor=transparent].[backcolor=transparent]addEndpoint[backcolor=transparent]([backcolor=transparent]"cn-hangzhou"[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]"cn-hangzhou"[backcolor=transparent],[backcolor=transparent] product[backcolor=transparent],[backcolor=transparent] domain[backcolor=transparent]);
  14. [backcolor=transparent]        [backcolor=transparent]IAcsClient[backcolor=transparent] acsClient [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]DefaultAcsClient[backcolor=transparent]([backcolor=transparent]profile[backcolor=transparent]);
  15. [backcolor=transparent]       [backcolor=transparent]//组装请求对象
  16. [backcolor=transparent]        [backcolor=transparent]ChargeRequest[backcolor=transparent] request [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]ChargeRequest[backcolor=transparent]();
  17. [backcolor=transparent]        [backcolor=transparent]//必填-充值号码
  18. [backcolor=transparent]        request[backcolor=transparent].[backcolor=transparent]setPhoneNumber[backcolor=transparent]([backcolor=transparent]"[backcolor=transparent]13000000000[backcolor=transparent]);
  19. [backcolor=transparent]        [backcolor=transparent]//必填-充值档位-可通过档位查询接口查询支持的档位
  20. [backcolor=transparent]        request[backcolor=transparent].[backcolor=transparent]setGrade[backcolor=transparent]([backcolor=transparent]"50"[backcolor=transparent]);
  21. [backcolor=transparent]        [backcolor=transparent]//选填-是否分省默认是false
  22. [backcolor=transparent]        request[backcolor=transparent].[backcolor=transparent]setIsProvince[backcolor=transparent]([backcolor=transparent]"false"[backcolor=transparent]);
  23. [backcolor=transparent]        [backcolor=transparent]//选填-充值备注
  24. [backcolor=transparent]        request[backcolor=transparent].[backcolor=transparent]setReason[backcolor=transparent]([backcolor=transparent]"remark"[backcolor=transparent]);
  25. [backcolor=transparent]        [backcolor=transparent]//选填-外部扩展字段
  26. [backcolor=transparent]        request[backcolor=transparent].[backcolor=transparent]setOutId[backcolor=transparent]([backcolor=transparent]"yourOutId"[backcolor=transparent]);
  27. [backcolor=transparent]        [backcolor=transparent]//hint 此处可能会抛出异常,注意catch
  28. [backcolor=transparent]        [backcolor=transparent]ChargeResponse[backcolor=transparent] chargeResponse [backcolor=transparent]=[backcolor=transparent] acsClient[backcolor=transparent].[backcolor=transparent]getAcsResponse[backcolor=transparent]([backcolor=transparent]request[backcolor=transparent]);
  29. [backcolor=transparent]        [backcolor=transparent]if[backcolor=transparent]([backcolor=transparent]chargeResponse[backcolor=transparent].[backcolor=transparent]getCode[backcolor=transparent]()!=[backcolor=transparent] [backcolor=transparent]null[backcolor=transparent] [backcolor=transparent]&&[backcolor=transparent] chargeResponse[backcolor=transparent].[backcolor=transparent]getCode[backcolor=transparent]().[backcolor=transparent]equals[backcolor=transparent]([backcolor=transparent]"OK"[backcolor=transparent]))[backcolor=transparent] [backcolor=transparent]{
  30. [backcolor=transparent]                 [backcolor=transparent]//请求成功
  31. [backcolor=transparent]        [backcolor=transparent]}


错误码列表

Code描述
OK请求成功
isp.RAM_PERMISSION_DENYRAM权限DENY
isv.OUT_OF_SERVICE业务停机
isv.PRODUCT_UN_SUBSCRIPT未开通云通信产品的阿里云客户
isv.OUT_OF_SERVICE业务停机
isv.PRODUCT_UNSUBSCRIBE产品未开通
isv.ACCOUNT_NOT_EXISTS账户不存在
isv.ACCOUNT_ABNORMAL账户异常
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不存在对应流水号的充值记录
安全 Java API 开发工具
分享到
取消 提交回答
全部回答(0)
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程