开发者社区> 问答> 正文

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



流量直冲接口(Charge)



步骤 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-php-sdk-core包,另外一个是alicom-dycdp-api包,将这两个包添加到工程类库依赖中。
SDK&DEMO[ 下载地址]

2: 编写样例程序

  1. [backcolor=transparent]//此处需要替换成自己的AK信息
  2. [backcolor=transparent]    $accessKeyId [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"yourAccessKeyId"[backcolor=transparent];
  3. [backcolor=transparent]    $accessKeySecret [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"yourAccessKeySecret"[backcolor=transparent];
  4. [backcolor=transparent]    [backcolor=transparent]//流量API产品名
  5. [backcolor=transparent]    $product [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"Dycdpapi"[backcolor=transparent];
  6. [backcolor=transparent]    [backcolor=transparent]//流量API产品域名
  7. [backcolor=transparent]    $domain [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"dycdpapi.aliyuncs.com"[backcolor=transparent];
  8. [backcolor=transparent]    [backcolor=transparent]//暂时不支持多Region
  9. [backcolor=transparent]    $region [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"cn-hangzhou"[backcolor=transparent];
  10. [backcolor=transparent]    [backcolor=transparent]//初始化访问的acsCleint
  11. [backcolor=transparent]    $profile [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]DefaultProfile[backcolor=transparent]::[backcolor=transparent]getProfile[backcolor=transparent]([backcolor=transparent]$region[backcolor=transparent],[backcolor=transparent] $accessKeyId[backcolor=transparent],[backcolor=transparent] $accessKeySecret[backcolor=transparent]);
  12. [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]);
  13. [backcolor=transparent]    $acsClient[backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]DefaultAcsClient[backcolor=transparent]([backcolor=transparent]$profile[backcolor=transparent]);
  14. [backcolor=transparent]    $request [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]Dycdpapi[backcolor=transparent]\Request\V[backcolor=transparent]20170525[backcolor=transparent]\ChargeRequest[backcolor=transparent]();
  15. [backcolor=transparent]    [backcolor=transparent]//必填-需要充值的手机号
  16. [backcolor=transparent]    $request[backcolor=transparent]->[backcolor=transparent]setPhoneNumber[backcolor=transparent]([backcolor=transparent]"13010112022"[backcolor=transparent]);
  17. [backcolor=transparent]    [backcolor=transparent]//必填-充值档位
  18. [backcolor=transparent]    $request[backcolor=transparent]->[backcolor=transparent]setGrade[backcolor=transparent]([backcolor=transparent]"50"[backcolor=transparent]);
  19. [backcolor=transparent]    [backcolor=transparent]//选填-是否分省
  20. [backcolor=transparent]    $request[backcolor=transparent]->[backcolor=transparent]setIsProvince[backcolor=transparent]([backcolor=transparent]"false"[backcolor=transparent]);
  21. [backcolor=transparent]    [backcolor=transparent]//选填-充值原因
  22. [backcolor=transparent]    $request[backcolor=transparent]->[backcolor=transparent]setReason[backcolor=transparent]([backcolor=transparent]"活动充值送流量"[backcolor=transparent]);
  23. [backcolor=transparent]    [backcolor=transparent]//必填-充值流水号
  24. [backcolor=transparent]    $request[backcolor=transparent]->[backcolor=transparent]setOutId[backcolor=transparent]([backcolor=transparent]"1234"[backcolor=transparent]);
  25. [backcolor=transparent]    [backcolor=transparent]//发起访问请求
  26. [backcolor=transparent]    $acsResponse [backcolor=transparent]=[backcolor=transparent] $acsClient[backcolor=transparent]->[backcolor=transparent]getAcsResponse[backcolor=transparent]([backcolor=transparent]$request[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.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运营商月末维护
[tr=rgb(239, 251, 255)][td]isp.FLOW_PAYMENT_ERROR 账户扣款失败 isv.RECORD_HAS_EXISTS已存在该流水号的充值记录 isv.RECORD_NO_FIND不存在对应流水号的充值记录

展开
收起
猫饭先生 2017-10-25 13:56:02 2202 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载