Skip to main content

H5不传手机号

一、 对接流程#

1、 由易能时代运营部门提供H5链接给到合作方

2、合作方将易能时代提供的H5链接配置合作方平台

3、合作方用户通过该H5链接直接跳转到易能时代平台,可以直接获取到易能时代油站列表信息,但是用户进入油站详情页时,将会先跳转到易能时代登陆界面进行登陆,完成之后,即可在易能时代平台完成加油服务


二、 对接须知#

参数信息#

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、H5油站列表页(必接)#

接口描述#

用户通过拼接相关参数进入油站首页。

请求方式#

Path: pages/platform/soulList/index.html

Method: GET

示例: https://pre.ejiayou.com/pages/platform/soulList/index.html?plat=8Tou6

请求参数:#

参数名必选类型说明
platstring平台标识

2、H5 油站详情页#

接口描述#

合作方平台通过此接口生成H5链接,用户通过点击H5链接进入到属于易能时代的油站详情页,用户在此接口无需拼接用户手机号。

请求方式#

Path: /pages/platform/soulList/detail.html

Method: GET

示例:

https://pre.ejiayou.com/pages/platform/soulList/detail.html?source=1&plat=Y6050&sign=e4a21d59a1da4c4f9118cbaa7a311ecb&timestamp=1661913643597&oilId=1&latitude=22.54845664&longitude=114.06455184&stationId=21403&yplatform=0#inputMoney

请求参数:#

参数名必选类型说明
platstring平台标识
userPhonestring手机号码
signstring签名见《sign签名规则》
timestamplong时间戳,单位秒,超时5分钟
stationIdlong油站id
longitudelong经度,用户坐标
latitudelong纬度,用户坐标
source油品如 92#
oilIdInt油品id,如 1
sign 签名规则#
名称说明示例
app_key我们方提供的固定值kkkkkkkk
timestamp和请求所传{timestamp}相等1531364788
app_secret我们方提供的固定值ssssssss

示例 :使用#号连接sign = MD5(kkkkkkkk + # + timestamp + # + ssssssss)。特别提醒:该签名区分大小写

3、用户个人订单查询(必接)#

接口描述#

用户个人订单查询接口,由易能时代返回用户的历史订单数据

请求方式#

Path: #

/oreo/ejiayou_open_api/orders/histroy/(userPhone}/(platformName}/(sign}/(timestamp}

Method:GET

Headers:Content-Type:application/json

示例:https://pre.ejiayou.com/oreo/ejiayou_open_api/orders/histroy/13000000000/xxxx/(sign}/(timestamp}

路径参数:#

参数名必选类型说明
userPhonestring手机号码
platformNamestring平台名称,由易能时代产品提供正式/测试的 platformName
signstring签名见《sign签名规则》
timestamplong时间戳,单位秒

POST 参数说明:#

参数名必选类型说明
stationIdsstring油站id,为空默认查询所有油站订单记录,如指定12号油站输入:12;可传传多个值,用 ‘ ,’ 英文逗号隔开
pageint分页,表示当前页数,每页固定 10 条数据

sign 签名规则:#

名称说明示例
beforeKey我们方提供的固定值(我方产品以邮件告知)echoejy
timestamp时间戳, 单位秒, 对应{timestamp}1531364788
afterKey我们方提供的固定值(我方产品以邮件告知)ko0s1dSqwo1XZ

对(beforeKey + timestamp + afterKey)采用 MD5 加密,结果取 32 位大写。

返回参数说明:#

参数名类型说明
consumeTimesString消费次数
allPaySumString共支付
saveMoneyString共节省
orderListList历史订单列表
orderQuantityint订单数,只有 stationsIds 不为 0 时才会给出
currentPageNumint当前页数
allPageNumint所有数量
personalInfoPersonalInfo 类个人信息类
历史订单列表参数名类型说明
orderIdString订单号
stationNameString油站名称
stationPicString油站图片
payTimeString支付时间
orderSumString订单金额
reduceSumString优惠金额
orderStateint订单状态 2 为正常订单,3 为退款中订单,4 为已退款订单
hasStationPhoneint1 为有油站电话 0 为没有油站电话
stationPhoneString油站电话

personalInfo 参数说明

个人信息类参数名类型说明
joinEjiayouDayString加入易能时代天数
headUrlString微信头像
nickNameString微信昵称
centerPicUrlString中心图片地址
globalPicUrlString整图模块地址

4、发券接口#

接口描述#

合作平台可通过调取该接口给符合条件的指定用户发放易能时代优惠券,由易能时代配置并提供活动 id。兑换优惠券流程参考【常见问题-4.用户获取优惠券流程】

请求方式#

Path:#
/oreo/ejiayou_open_api/platform/merchandise/v1/{platformName}/{userPhone}/{sourceId}/{s ign}/{timestamp}

Method:GET

示例:#
https://pre.ejiayou.com/oreo/ejiayou_open_api/platform/merchandise/v1/xxxx/13000000000/183780111/14E3584DBCED5C2CD5DFC27B340E3EC5/1582526116956

请求参数:#

参数名必选类型说明
platformNamestring平台名称,由易能时代产品提供正式/测试的 platformName
userPhonestring用户手机号码
sourceIdstring优惠券活动 id
signstring签名见《sign 签名规则》
timestamplong时间戳 单位秒 对应 url 中{timestamp}
sign 签名规则:#
名称说明示例
beforeKey我们方提供的固定值(我方产品以邮件告知)echoejy
timestamp时间戳, 单位秒, 对应{timestamp}1531364788
afterKey我们方提供的固定值(我方产品以邮件告知)ko0s1dSqwo1XZ

对(beforeKey + timestamp + afterKey)采用 MD5 加密,结果取 32 位大写。

返回参数说明:#

参数名类型说明
codestring200 表示成功,其他失败
msgstring提示消息,成功为 SUCCESS
data 说明#
参数名类型说明
statusint1.成功 0.失败
userPhonestring用户手机号
sendTimeString送券时间
msgString提示信息,优惠券发放状态信息
sourceIdList活动 id
coupons 说明#
参数名类型说明
couponIdint优惠券 id
userMerchandiseIdstring用户优惠券编号,即优惠券唯一码
merchandiseTypeint券类型 1 直减券(现金券),2 折扣券, 6 直降券

5、财务对账(必接)#

接口描述#

第三方平台可通过该接口查询历史订单,查询时间段最大为 31 天。

请求方式#

Path:#
/oreo/ejiayou_open_api/platform/orders/v2/{platformName}/{sign}/{timestamp}

Method: GET

示例:#
https://pre.ejiayou.com/oreo/ejiayou_open_api/platform/orders/v2/xxxx/14D431A6AAEA2BED9237C5F0E5211EDD/1531364788?startTime=20190612235959&endTime=20190620235959&pageNum=1&pageSize=100

路径参数说明:#

路径参数必选类型说明
platformNamestring平台名称,由易能时代产品提供正式/测试的 platformName
signstring签名见《特定接口签名规则》
timestamplong时间戳,单位秒

请求参数说明:#

拼接参数必选类型说明
orderIdstring易能时代订单号
outOrderSignstring合作平台订单号
startTimestring订单支付开始日期时间 格式 yyyyMMddHHmmss 例 20190612235959 startTime 与 endTime 需同时传,如果有 orderId 可不传
endTimestring订单支付结束日期时间 格式 yyyyMMddHHmmss 例 20190612235959 startTime 与 endTime 需同时传,如果有 orderId 可不传
pageNumint页码不传默认 1
pageSizeint每页数 不传默认 100 最大 500

返回示例

{
  "code": 200,
  "msg": "SUCCESS",
  "data": {
      "total": 1,
      "list": [
          {
              "payOrderTime": "2019-05-14 17:06:24",
              "orderId": "9000000020026004",
              "city": "深圳市",
              "refundTime": "2019-06-14 18:13:39",
              "orderSum": "76.42",
              "oilCode": "92#",
              "oilMass": "11.94",
              "payType": "52",
              "province": "广东省",
              "phone": "F0A69914398DC6CE15E9A9D136665471",
              "couponMoney": "0.00",
              "originalCost": "80.00",
              "stationName": "源政创业大厦加油站",
              "status": 2
          }
      ],
      "pageNum": 1,
      "pageSize": 100
  }
}

返回参数说明:#

参数名类型说明
codestring200 表示成功,其他失败
msgstring提示消息,成功为 SUCCESS
datastring订单数据
Data 说明#
参数名类型说明
totalint查询总条数
pageNumint页码
pageSizeint每页数
listlist订单列表
list:#
参数名类型说明
orderIdstring易能时代内部订单流水号
phonestring手机号码
provincestring省份名称
citystring城市名字
stationNamestring油站名称
oilCodestring油号名称
originalCoststring机显金额(元)
couponMoneystring优惠券金额(元)
orderSumstring用户实际支付金额(元)
oilMassstring加油升数(升)
payTypestring1-微信 2-支付宝 52-第三方支付
payOrderTimestring支付时间
refundTimestring退款时间, status 为 2 时有值
statusint0 待支付 1-支付 2-退款

四、接口列表(合作平台实现)#

1、支付状态/退款状态回调通知#

接口描述#

需由易能时代调用第三方平台接口,调用地址由易能时代工作人员在后台进行配置。

特别提醒#

  1. 提供 URL 时请按以下格式告知易能时代工作人员,如:测试环境/正式环境+支付/退款回调 URL

  2. 用户完成支付/申请退款,合作方将订单订单状态同步至易能时代,易能时代会把支付/退款结果发送给合作方服务端,合作方服务端接收到结果后无需返回应答。

  3. 支付/退款回调通知务必要做签名验证,保证请求参数与易能时代平台参数的一致性

请求方式#

Method: POST

Header application/json

请求示例#
{
"orderld": "8888889",
"phone": "15812341234",
"province":"广东省”,
"city":"深圳市”,
"stationName":"丽资加油站”,
"oilcode”: "92#”,
"originalcost": "100.00",
"couponMoney": "0",
"ordersum": "80.00",
"oilMass": "12.67",
"payType": "1",
"dateTime": "2018-05-07 10:40:12",
"status": 1,
"ak": "axmduwq1",
"nonce": "A03F033911D12BD330171346A0192E5B”,
"timestamp": "1536146925000",
"sign": "8cb2862f95aa6949c19b0c8561217588"
}

路径参数:#

参数名类型说明是否参与签名
orderIdstring易能时代内部订单流水号
phonestring手机号码
provincestring省份名称
citystring城市名字
stationNamestring油站名称
oilCodestring油号名称
originalCoststring机显金额(元)
couponMoneystring优惠券金额(元)
orderSumstring用户实际支付金额(元)
oilMassstring加油升数(升)
payTypestring1.微信 2.支付宝
dateTimestring支付/退款时间
statusint1-支付 2-退款
akstringappkey 加密使用
noncestring32 位随机字母数字组合
timestampstring时间戳
signstring签名

其他可选参数#

参数名类型说明是否参与签名
stationIdstring油站 id
couponIdstring优惠券 id
userMerchandiseIdstring用户优惠券号码,唯一号码
stationPricestring油站挂牌价
discountPricestring最终享受单价
countryPricestring国家价
outStatestring从 H5 传入的 P 端自定义参数重新传回给 P 端,跳转前把数据放进 seesionStorage 里

返回示例#

{
 "returnCode":"SUCCESS"
}

响应参数:#

参数名必填类型说明
returnCodeString返回码 SUCCESS 为成功,即订单支付成功或订单退款成功,否则为失败,会重复回调 8 次,每次间隔 15 秒(注意:支付成功/退款成功通知为油站方与用户核实确认的订单)

签名验证方法:#

1.按字段的 key 进行排序,拼接 key=value 字符,使用&符号连接,最后加上 sk(由我方提供)(注意:sk 前也 用 & 连接)Charset 为 UTF8

示例

ak=axmduwq1&city=深圳市&couponMoney=0&dateTime=2019-01-1508:47:18&nonce=5eb667eff4a0462ba358cbf0f64be20e&oilCode=92#&oilMass=20.00&orderId=1000000050312339&orderSum=120.00&originalCost=131.00&payType=1&phone=13509605015& province=广东省&stationName=中石油南海湾加油站&status=1&timestamp=1547706551446&0ba224ca335bf18xa12aasd1

2.对整体字符串进行 MD5 加密,Charset 为 UTF8

apache:
//依赖
<dependency>
<groupld>commons-codec</groupld>
<artifactld>commons-codec</artifactld>
<version>1.9</version>
</dependency>
//代码
DigestUtils.md5Hex(str);
spring:
//依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spri ng-core</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>

五、特定接口签名规则#

签名生成的通用步骤如下:#

API对接 对(beforeKey + timestamp + afterKey)采用 MD5 加密,结果取 32 位大写

H5对接: 使用#号连接sign=MD5(app_key+#+timestamp+#+app_secret)

六、错误码#

在对接过程中出现的异常中带有 错误码 Code 和错误提示 msg,常见 code 和 msg 值及对应解决方案如下所示:

codemsg解决方案
400签名错误1、首先,核实签名是否按照文档的签名规则进行生成。 2、其次,看app_key、app_secret等是否于易能时代提供的一致
19112找不到对应平台/
19113系统异常,无法识别当前用户/
19117获取用户唯一标识失败/
19121油站功能未开放,请联系易能时代运营/
19125该油枪数据不存在/
19126金额最高不能超过:xxx/
19127金额最低不能小于:xxx/

注意:在联系易能时代解决问题时需要告知环境信息,如:正式环境/测试环境


七、常见问题#

1. 易能时代目面向平台端优惠券类型有哪些#

现金券:订单金额需满足一定的最低额度才可使用,例如满 200 减 20 元。(特殊情况:A 油站满 200 直降 10 元,用户领取满 200 减 20 元优惠券,那么用户的最终支付金额为 200-20-10=170 元);

折扣券:使用折扣券购买油品时可打折;

以上优惠券均可配置可叠加和不可叠加两种形式,同时也可配置仅部分平台使用或全平台使用,具体的运营配置规则需和易能时代运营进行沟通确认。

2. 为什么易能时代 app 的油站数和获取油站列表数不一致,或是易能时代 app 中展示的参数接口文档中未看到。#

因客观原因少量油站不支持在第三方平台透出。与易能时代 app 为两种不同的展现方式,最终参数以接口文档中的返回参数为准,具体可以参考推荐的平台.

3. 已经按照签名规则进行生成,为什么还是提示签名错误#

H5对接中,有三套签名规则,均在相应接口中有说明。

4. 用户获取优惠券流程#

img