用户参与流程:
用户通过公众号进入游戏界面,点击开始聚财按钮,跳转到游戏规则界面。在游戏规则界面,用户点击开始答题,共12道题,每道题10里程积分。答对累计里程积分,答错不扣分,12道题完成后,提示用户答对题目数量,获得XX里程积分,点击去兑换“东航万里行”积分按钮,跳转到东航指定兑换页面,用户进行登录或注册,提示用户成功换取 XX 万里行 积分,并跳转到 分享页面。
用户再次进入游戏页面,可以点击分享或者点击兑换,如果已经兑换过了,提示用户已经兑换成功。
鉴权方法
HTTP头
HTTP头名称 | 字段说明 | 样例 |
---|---|---|
timestamp | 时间戳 | 1490259359789 |
signature | 签名字段 | 此字段为算法见下文 |
名称 | 字段说明 |
---|---|
timestamp | 13位时间戳,需要判断接收到的时间戳 是否在当前时间的前后30分钟,如果不是,将按照无效请求处理 |
signature | String temp = MD5(exchangeno + "I" + token.upper() + "I" + timestamp) |
exchangeno | 兑换流水号 : S2CDH2017032800001 固定位(S2CDH) + 日期(20170328) + 最大10万(00001) |
token | 令牌,双方各持有一个令牌,接收方将按照自己持有的令牌进行判断,发送方将使用要接收方的令牌进行签名。 令牌在做签名的时候需要全大写。 令牌使用时为提供服务方,用自己令牌做签名验证,而调用方,用对端令牌制作签名 |
令牌持有方 | 令牌号 | 说明 |
---|---|---|
东航系统 | DHXXXXXXXXXXXXXX | 此项为配置项,在上线前统一修改,请勿写死在代码中 |
融石科技 | RSXXXXXXXXXXXXXX | 此项为配置项,在上线前统一修改,请勿写死在代码中 |
返回结构
{statusCode:"000000",error:"错误信息",result:JSON}
在statusCode 为000000时,说明业务成功返回,此时result为返回结果,为必填项。
反之,说明业务失败返回,此时error为返回的错误信息,为必填项。
接口概述
1. 【创建兑换信息】
融石——>东航
https://XXXX.ceair.com/s2c/couponexchange. (此地址由东航提供)
RequestBody:
{
exchangeno: "S2CDH2017032800001 ", //兑换流水号
score: 100, //赠送的积分数量
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
result: "XXXXXXXXX" //返回一个sessionid
}
2. 【东航兑换页面】
融石——>东航
https://XXXXX.ceair.com/s2c/exchange.html (此地址由东航提供)
time=1490259359789 为防止缓存
sessionid=XXXXX 此项为创建兑换信息返回的sessionid
score=100 赠送的积分数量
例如:
https://XXXXX.ceair.com/s2c/exchangecoupon.html?sessionid=g3k2d3h5v4t3j1j&score=100&time=1490259359789
3. 【兑换成功回调】
东航——>融石
https://s2i.rongstone.com/s2c/exchangeresult
RequestBody:
{
exchangeno: "S2CDH2017032800001 ", //兑换流水号
result:"success", //success 为兑换成功,为fault 为兑换失败
}
ResponseBody:
{
statusCode: "000000", //成功返回 6个0
error: "", //错误信息
}
4. 【分享朋友圈提示页】
东航——>融石
https://cxrs.ceair.com/s2c/share.html
time=1490259359789 为防止缓存
exchangeno=S2CDH2017032800001 此项为兑换流水号
例如:
https://s2c.rongstone.com/s2c/couponshare.html?exchangeno = S2CDH2017032800001&time=1490259359789