小程序对接
一、 对接流程#
A、合作方根据接口文档,将易能时代小程序嵌入合作平台
B、合作方用户点击进入加油入口,直接进入易能时代小程序,完成加油服务
二、 对接须知#
参数信息#
platformName,beforeKey、afterKey 、app_key、app_secret、ak、sk 等调取接口必要的信息由易加油产品提供。
环境信息#
· 测试域名: https://pre.ejiayou.com
· 正式域名: https://api.ejiayou.com
测试须知#
· 请谨慎使用正式环境的油站测试支付!若需测试请提前告知易能时代,由易能时代运营与油站提前沟通后方可进行测试。已确认测试油站 后有以下要求:单笔支付金额≤10元,单个油站可测试订单数≤5笔,当天支付订单必须当天反馈易能时代工作人员申请退款,隔天订单不予退款申请操作。如需测试10元≤订单支付金额≤1000元),请使用易能时代正式环境测试油站id:21413。 · 测试环境获取的油站均可进行测试操作。
接口参数类型#
分为路径参数,请求参数,body 参数
· 路径参数 :接口路径中对应的{}中
· 请求参数 :在接口路径之后,与接口路径使用?分隔,且请求参数与请求参数使用&分隔
· body 参数:POST 方法放在 json 请求体中的参数
接口返回类型#
· 统一 Content-Type : application/json 格式
经纬度类型#
· 易能时代经纬度为百度坐标系 测试环境退款说明 在测试环境,30分钟之内申请退款,需要告知易能时代工作人员进行退款操作,正式环境退款最终是需要油站点击同意退款。
三、 接口列表(易能时代实现)#
1、跳转一键加油小程序(必接接口)#
接口描述:#
合作方用户点击优惠加油入口,直接进入易能时代小程序
请求方式:#
一键加油小程序appId : wx115b13ee3613ef26
跳转路径:pages/index/index
传入参数:
| 参数名 | 说明 |
|---|---|
| phone | 手机号 |
| platformName | 平台名(由易能时代产品提供) |
2、用户个人订单查询(必接接口)#
接口描述:#
用户个人订单查询接口,由易能时代返回用户的历史订单数据
请求方式:#
Path:/oreo/ejiayou_open_api/orders/histroy/(userPhone}/(platformName}/(sign}/(timestamp}
Method:GET
Headers:Content-Type:application/json
示例:
路径参数:#
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| userPhone | 是 | string | 手机号码 |
| platformName | 是 | string | 平台名称 |
| sign | 是 | string | 签名 |
| timestamp | 是 | long | 时间戳,单位秒 |
POST参数说明:#
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| stationIds | 是 | string | 油站id,为空默认查询所有油站订单记录,如指定12号油站输入:12 |
| page | 是 | int | 分页 |
sign签名规则:#
| 名称 | 说明 | 示例 |
|---|---|---|
| beforeKey | 我们方提供的固定值(我方产品以邮件告知) | echoejy |
| timestamp | 时间戳, 单位秒, 对应{timestamp} | 1531364788 |
| afterKey | 我们方提供的固定值(我方产品以邮件告知) | ko0s1dSqwo1XZ |
对(beforeKey + timestamp + afterKey)采用 MD5 加密,结果取 32 位大写。
返回示例:#
返回参数说明:#
| 参数名 | 类型 | 说明 |
|---|---|---|
| consumeTimes | String | 消费次数 |
| allPaySum | String | 共支付 |
| saveMoney | String | 共节省 |
| orderList | List | 历史订单列表 |
| orderQuantity | int | 订单数,只有stationsIds不为0时才会给出 |
| currentPageNum | int | 当前页数 |
| allPageNum | int | 所有数量 |
| personalInfo | PersonalInfo类 | 个人信息类 |
orderList参数说明#
| 历史订单列表参数名 | 类型 | 说明 |
|---|---|---|
| orderId | String | 订单号 |
| stationName | String | 油站名称 |
| stationPic | String | 油站图片 |
| payTime | String | 支付时间 |
| orderSum | String | 订单金额 |
| reduceSum | String | 优惠金额 |
| orderState | int | 订单状态 2为正常订单,3为退款中订单,4为已退款订单 |
| hasStationPhone | int | 1为有油站电话 0为没有油站电话 |
| stationPhone | String | 油站电话 |
personalInfo参数说明#
| 个人信息类参数名 | 类型 | 说明 |
|---|---|---|
| joinEjiayouDay | String | 加入易能时代天数 |
| headUrl | String | 微信头像 |
| nickName | String | 微信昵称 |
| centerPicUrl | String | 中心图片地址 |
| globalPicUrl | String | 整图模块地址 |
3、发券接口#
接口描述#
合作平台可通过调取该接口给符合条件的指定用户发放易能时代优惠券。
请求方式:#
Path:#
Method: GET#
示例:
路径参数:#
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| platformName | 是 | string | 平台标识 由易能时代产品提供 |
| userPhone | 是 | string | 用户手机号码 |
| sourceId | 是 | string | 优惠券活动id |
| sign | 是 | string | 签名 |
| timestamp | 是 | long | 时间戳,单位秒,对应 url 中{timestamp |
sign签名规则:#
| 名称 | 说明 | 示例 |
|---|---|---|
| beforeKey | 我们方提供的固定值(我方产品以邮件告知) | echoejy |
| timestamp | 时间戳, 单位秒, 对应{timestamp} | 1531364788 |
| afterKey | 我们方提供的固定值(我方产品以邮件告知) | ko0s1dSqwo1XZ |
对(beforeKey + timestamp + afterKey)采用 MD5 加密,结果取 32 位大写。#
返回示例:#
返回参数说明:#
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | string | 200 表示成功,其他失败 |
| msg | string | 提示消息,成功为 SUCCESS |
data说明#
| 参数名 | 类型 | 说明 |
|---|---|---|
| status | int | 1.成功 0.失败 |
| userPhone | string | 用户手机号 |
| sendTime | String | 送券时间 |
| msg | String | 提示信息 |
| sourceId | List | 活动 id |
coupons说明#
| 参数名 | 类型 | 说明 |
|---|---|---|
| couponId | int | 优惠券 id |
| userMerchandiseId | string | 用户优惠券编号,即优惠券唯一码 |
| merchandiseType | int | 券类型 1.满减券 2.折扣券 |
4、财务对账#
接口描述#
第三方平台可通过该接口查询历史订单,查询时间段最大为31天。
请求方式:#
Path:#
示例:#
Method: GET#
路径参数:#
| 路径参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| platformName | 是 | string | 平台标识 由易能时代产品提供 |
| sign | 是 | string | 签名见《特定接口签名规则》 |
| timestamp | 是 | long | 时间戳,单位秒,对应 url中{timestamp |
请求参数:#
| 拼接参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| orderId | 否 | string | 易能时代订单号 |
| outOrderSign | 否 | string | 合作平台订单号 |
| startTime | 是 | string | 订单支付开始日期时间 格式yyyyMMddHHmmss 例20190612235959 startTime与endTime需同时传 如果有orderId可不传 |
| endTime | 是 | string | 订单支付结束日期时间 格式yyyyMMddHHmmss 例20190612235959 startTime与endTime需同时传 如果有orderId可不传 |
| pageNum | 否 | int | 页码 不传默认1 |
| pageSize | 否 | int | 每页数 不传默认100 最大500 |
返回示例:#
返回参数说明:#
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | string | 200 表示成功,其他失败 |
| msg | string | 提示消息,成功为 SUCCESS |
| data | string | 订单数据 |
data详情:#
| 参数名 | 类型 | 说明 |
|---|---|---|
| total | int | 查询总条数 |
| pageNum | int | 页码 |
| pageSize | int | 每页数 |
| list | list | 订单列表 |
list:#
| 参数名 | 类型 | 说明 |
|---|---|---|
| orderId | string | 易能时代内部订单流水号 |
| phone | string | 手机号码 |
| province | string | 省份名称 |
| city | string | 城市名字 |
| stationName | string | 油站名称 |
| oilCode | string | 油号名称 |
| originalCost | string | 机显金额(元) |
| couponMoney | string | 优惠券金额(元) |
| orderSum | string | 用户实际支付金额(元) |
| oilMass | string | 加油升数(升) |
| payType | string | 1.微信 2.支付宝 52.第三方支付 |
| payOrderTime | string | 支付时间 |
| refundTime | string | 退款时间 status为2时有值 |
| status | string | 0 待支付 1-支付 2-退款 |
四、接口列表(合作平台实现)#
1、支付状态/退款状态回调通知#
接口描述#
由第三方平台提供调用接口。。
请求方式:#
Method:POST#
请求示例#
路径参数:#
| 参数名 | 类型 | 说明 | 是否参与签名 |
|---|---|---|---|
| orderld | string | 易能时代内部订单流水号 | 是 |
| phone | string | 手机号码 | 是 |
| province | string | 省份名称 | 是 |
| city | string | 城市名字 | 是 |
| stationName | string | long | 是 |
| oilCode | string | 油号名称 | 是 |
| originalCost | string | 机显金额(元) | 是 |
| couponMoney | string | 优惠券金额(元) | 是 |
| orderSum | string | 用户实际支付金额(元) | 是 |
| oilMass | string | 加油升数(升) | 是 |
| payType | string | 1.微信2.支付宝 | 是 |
| dateTime | string | 支付/退款时间 | 是 |
| status | string | 1-支付2-退款 | 是 |
| ak | string | appkey加密使用 | 是 |
| nonce | string | 32位随机字母数字组合 | 是 |
| timestamp | string | 时间戳 | 是 |
| sign | string | 签名 | 否 |
其他可选参数:#
| 参数名 | 类型 | 说明 | 是否参与签名 |
|---|---|---|---|
| stationId | string | 油站id | 是 |
| couponId | string | 优惠券id | 是 |
| userMerchandiseId | string | 用户优惠券号码,唯一号码 | 是 |
| stationPrice | string | 油站挂牌价 | 是 |
| discountPrice | string | 最终享受单价 | 是 |
| countryPrice | string | 国家价 | 是 |
| outState | string | H5传入的P端自定义参数重新传回给P端 | 是 |
返回示例#
响应参数:#
| 参数名 | 必填 | 类型 | 说明 |
|---|---|---|---|
| returnCode | 是 | String | 返回码SUCCESS为成功,否则为失败,会重复回调8次每次间隔15秒 |
验签方法#
1.按字段的key进行排序,拼接key=value字符,使用&符号连接,最后加上sk(由我方提供)(注意:sk前也 用 & 连接)Charset 为 UTF8
例:
2.对整体字符串进行MD5加密,Charset为UTF8
五、特定接口签名规则#
签名生成的通用步骤如下:#
API对接 对(beforeKey + timestamp + afterKey)采用 MD5 加密,结果取 32 位大写
H5对接: 使用#号连接sign=MD5(app_key+#+timestamp+#+app_secret)
六、错误码#
在对接过程中出现的异常中带有 错误码 Code 和错误提示 msg,常见 code 和 msg 值及对应解决方案如下所示:
| code | msg | 解决方案 |
|---|---|---|
| 400 | 签名错误 | 1、首先,核实签名是否按照文档的签名规则进行生成。 2、其次,看app_key、app_secret等是否于易能时代提供的一致 |
| 19112 | 找不到对应平台 | / |
| 19113 | 系统异常,无法识别当前用户 | / |
| 19117 | 获取用户唯一标识失败 | / |
| 19121 | 油站功能未开放,请联系易能时代运营 | / |
| 19125 | 该油枪数据不存在 | / |
| 19126 | 金额最高不能超过:xxx | / |
| 19127 | 金额最低不能小于:xxx | / |
注意:在联系易能时代解决问题时需要告知环境信息,如:正式环境/测试环境