又拍云 php5月18号那,又拍云文档中心

移动流量

平台概述¶

又拍云手机流量营销平台,整合移动、电信、联通三大运营商流量资源,将强大的流量营销服务,通过接口等形式提供给商家合作伙伴,帮助商家开展品牌宣传、APP/游戏/微信公众号/网站的拉新与促活等多种营销活动。

通过接入又拍云流量营销平台,商家可以获得更多流量、用户和收益,而商家提供的活动也让用户获得了三网通用流量和更加丰富的活动体验。

产品特点¶

1.三网通用,成本优势,覆盖面广

2.快速对接、全流水、易对账、精结算

应用场景¶

1.APP 下载赠流量

2.微信公众号增粉

3.奖品礼券

4.流量加油站

5.积分兑换流量

6.活动比赛送流量

7.流量红包

8.员工福利

对接说明¶

1.请联系商务(Tel:0571-89775132)确定您的应用场景需求,获取对应流量报价

2.注册又拍云账号,如果您已有账号,请登录 又拍云控制台 完成企业/个人认证

3.前往导航 > 工具箱 > 手机流量营销页面,开通该服务(开通邮件中包含接口地址)

4.通过流量营销控制台配置回调地址

5.出口 IP 出于安全考虑暂不支持控制台配置,可联系我司商务完成生产环境联调

业务交互流程:

d73fdec6e1d7f42e822996680e967196.png

接口文档¶

又拍云手机流量平台接口入口地址统一为:https://ptp-api.upyun.com,请求接口时,统一使用 POST 方法, 文档类型统一为 Content-Type: application/json,使用 JSON 格式发送请求, 响应结果也会以 JSON 格式返回;文档中接口的请求地址只包含路径部分,实际请求时,需要加上统一入口地址 https://ptp-api.upyun.com。文档中描述签名计算时,都是先正序排序(给出的示例字符串已经是排序后的结果),再做 SHA1 运算。

本文档一共描述了四个接口和一个充值回调说明,接口如下:

获取签名 POST /refreshToken

提交订单 POST /chargeOrder

查询订单状态 POST /seekOrder

查询余额 POST /getMyBalance

针对以上接口,目前提供了 php 版本 sdk,用于提供接口调用示例, 各企业用户可以根据自己的需要进行封装,完善错误处理,下载地址:点击下载。

接口详情¶

1.获取计算签名需要的 token

接口说明

该接口用于获取 token,调用其他接口时,需要使用 token 计算签名。由于 token 需要在后续的接口请求中,全局共享,所以在并发请求的场景下,建议将 token 保存在 Redis/Mysql 等第三方存储中

请求地址

POST /refreshToken

请求参数

名称

类型

是否必须

描述

appkey

String

必须

appkey,由又拍云提供,可以登录手机流量后台查看

appsecret

String

必须

appsecret,由又拍云提供,可以登录手机流量后台查看

请求示例

curl https://ptp-api.upyun.com/refreshToken -H "Content-Type: application/json" -d "{\"appkey\": \"your_appkey_put_here\", \"appsecret\": \"your_appsecret_put_here\"}"

响应参数

名称

类型

示例值

描述

code

String

200

响应状态码,200 表示正常,其他详见错误码

token

String

XsdOpxqudzMnw

用于签名计算需要的 token,token 默认有效期为 24 小时,仅最后一次请求接口生成的 token 才有效

info

String

请求成功

响应示例

{

"code": "200",

"token": "XsdOpxqudzMnw",

"info": "请求成功"

}

2.创建订单

接口说明

创建手机流量充值订单

请求地址

POST /chargeOrder

请求参数

名称

类型

是否必须

描述

appkey

String

必须

E1KRHcKd3qoef8V1

mobile

String

必须

被充值手机号进行 AES 对称加密再 base64 转码后的值,一次只允许一个手机号码,见示例程序

prodcode

String

必须

流量包的产品编号

custno

String

必须

客户自定义的订单号,用于客户内部记录订单,长度必须小于30, 且每次充值,编号不重复

sign

String

必须

根据 token 和请求参数计算的签名,签名规则见算法说明部分 (示例程序下载)

prodtime

Integer

选填

流量时段,1 表示全时段流量,0 表示闲时流量,默认为全时段流量

prodstandard

Integer

选填

用于区分网络类型,可选值分别为:7表示全部网络类型,3表示 2g 和 3g 两种网络类型,1表示 2g 网络类型,默认值为7

响应参数

名称

类型

示例值

描述

code

String

200

响应状态码,200 表示创建订单成功;410 511 必须再次查询订单确认;其他错误码视为创建失败;系统响应超时等其他非正常响应,需要调用查询订单接口确认

custno

String

20150238829

客户订单号,和请求值一致

orderno

String

2016298237019

又拍云平台的订单号

info

String

充值成功

算法说明

计算手机号的 AES 对称加密,再 base64 转码后的值

将接口请求参数按照请求参数名称正序排序;

将请求参数和请求参数值拼接成字符串:appkey${YourAppKey}custno${YourCustno}mobile${YourAesEncodedMobile}prodcode${YourPrdcode}token${YourToken(将字符串中的变量${...}部分替换成实际值即可,)

对拼接后的字符串进行SHA1指纹运算,得到的 16 进制字符串 b5cd94c99e3e576f5e2ca0e66ee3da670cb1c62b 便是 sign 值

示例

参数拼接后的字符串为:appkey3P83lWwkoV15yZVTcustno20151123114702mobile8mBGFNfe1o/rzAx2Ost2IQ==prodcodeCMCC_10tokenVqHAab3JYXBDkCoO(注意手机号是 aes 加密再 base64 编码后的),进行 SHA1 运算得到的 sign 值为:8b05f52e605c7ab89a895eb730cacab4cbeabd4c

响应示例

{

"code": "200",

"custno": "20150238829",

"orderno": "2016298237019",

"info": "充值成功"

}

3.查询订单状态

接口说明

查询充值订单当前的状态,用于确认是否充值成功

请求地址

POST /seekOrder

请求参数

名称

类型

是否必须

描述

custno

String

必须

客户提交的订单号

appkey

String

必须

鉴权账号

sign

String

必须

签名,签名规则为:将 appkey${YourAppKey}custno${YourCustno}requesttime${YourReqestTime}TOKEN${YourToken} 中${...}变量部分替换为实际值,再进行 SHA1 运算。如果请求参数不包含 requesttime,计算签名则不需要该值

requesttime

String

查询的时间点,该参数为可选参数,格式为"YYYY-MM-DD HH:mm:ss",当传递该参数时,我们会在给定时间点的前后 1 个小时范围内查询;如果未传该参数,我们将在最近一周的订单中查询

响应参数

名称

类型

示例值

描述

code

String

200

响应状态码,200 表示充值成功;430 516 530 表示充值失败;511 必须人工再次确认;其他错误码视为充值中

custno

String

20150238829

客户自定义订单号

info

String

成功

响应示例

{

"code": "200",

"custno": "2015823871239",

"info": "充值成功"

}

4.查询余额

请求地址

POST /getMyBalance

请求参数

名称

类型

是否必须

描述

appkey

String

必须

sign

String

必须

签名,算法为 appkey${YourAppKey}TOKEN${Yourtoken} 中${...}变量部分替换实际值,再进行 SHA1 运算得到的字符串便为 sign 值

响应参数

名称

类型

示例值

描述

code

String

200

响应状态码

balance

Float

100.00

账户余额(包含冻结金额)

freeze

Float

20.00

冻结金额,正在交易的订单金额

availBalance

Float

80.00

实际可用余额(不包含冻结金额)

响应示例

{

"code": "200",

"balance": 100,

"freeze": 20,

"availBalance": 80

}

充值回调说明¶

客户需要在又拍云手机流量后台填写充值回调地址,并注意防火墙配置,不能屏蔽又拍云服务器地址。配置成功后,每次充值后,又拍云会向该地址发送 POST 请求,请求的数据格式为 application/json

请求参数

名称

类型

是否必须

描述

code

String

必须

响应状态码,200 表示充值成功;430,530 表示充值失败,其他错误码或异常信息表示充值中

orderno

String

必须

又拍云平台的订单号

custno

String

必须

客户自定义订单号

info

String

必须

描述信息

sign

String

必须

签名,客户可以使用该值校验请求是否合法,强烈建议接收充值回调时进行校验。签名规则为:将 code${Code}custno${YourCustno}info${Info}orderno${OrderNo}token${YourToken} 字符串中的变量部分${...}替换为请求参数中的值,再对得到的字符串进行 SHA1 签名

客户接受请求成功后,需要响应如下 json 值:

{

"info": "1"

}

否则,又拍云将隔 1 分钟再重试一次,一共回调 3 次

错误码说明¶

注:需要留意每个接口响应参数说明中的 code 处理方式

错误码

说明

错误码

说明

200

成功

201

充值中

410

运营商返回超时

422

用户状态异常

430

订购/充值失败

502

sign签名错误

503

余额不足

504

非法的回调地址

505

手机号不合法

506

用户不能订购该套餐

507

接口参数异常

508

令牌鉴权不通过

509

客户未认证授权

510

查询太频繁

511

内部异常,此时对订单的查询、充值等操作等需要联系客户再次确认

512

订单号重复

513

运营商请求超时

514

ip不在白名单

515

该客户不存在

516

不存在此订单

517

无法识别的手机号

519

当前appkey或appsecret错误

520

活动不存在

526

合同不在有效期

527

token不在有效期

530

订购/充值失败

531

签名不通过

532

订单号长度超过30

533

aes加密有误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值