易能时代SDK使用说明文档(API收银台)V1.2
#
一、 对接流程核心业务流程说明
A、合作方服务端向易能时代调取[“油站列表”](#_1、油站列表: stationList())接口,该接口每天限制最多只能调取 24 次。易能时代根据合作方的请求,向合作方返回油站列表信息,合作方用户端向合作方服务端请求油站信息列表,合作方服务端根据以获取的油站列表返回对应油站列表信息给到合作方用户端;
B、合作方用户端向合作方服务端请求进入油站详情页,合作方服务端向易能时代“[油站详细信息](#_油站详情信息: stationDetail(StationDetailParam param))”接口发起请求,获取油站详情信息,易能时代向合作方服务端返回对应油站详情信息,合作方用户端获取油站详情信息,进入油站详情信息界面;
C、合作方用户选定油枪、油品及购买金额后,向合作方服务端提交订单,合作方服务端向易能时代“[创建订单](#_创建订单接口 : createOrder(CreateOrderParam param) )”接口发起请求;
a、如果合作方服务端向易能时代请求校验未通过,则返回创建失败的结果,合作方服务端收到易能时代订单创 建失败的结果,返回给合作方用户端,此时合作方用户端需要重新走订单支付流程;
b、如果合作方服务端向易能时代请求校验通过,则返回创建成功的结果,合作方服务端收到易能时代订单创建 成功的结果,返回给合作方用户端,订单创建成功;
D、合作方用户端向合作方服务端发起支付请求,合作方服务端向易能时代“P 端收银台”接口发起支付请求
a、易能时代平台针对该请求发起校验,校验不通过(如合作方预存款不足或其他原因),则直接返回支付失败及相关失败原因给合作方服务端,合作方服务端收到易能时代订单支付失败的结果,返回给合作方用户端,此时当前支付流程结束。
b、如果合作方服务端向易能时代支付请求校验通过,则返回创建成功的结果,合作方服务端向合作方用户端返回支付成功结果,流程结束,支付完成,油站放行。
#
二、 对接须知#
参数信息· platformName,beforeKey,afterKey 等调取接口必要的信息由易能时代产品提供。
#
环境信息· 测试域名: https://dev.ejiayou.com
· 正式域名: https://api.ejiayou.com
#
测试须知· 请谨慎使用正式环境的油站测试支付!若需测试请提前告知易能时代,由易能时代运营与油站提前沟通后方可进行测试。已确认测试油站后有以下要求:单笔支付金额**≤**10 元,单个油站可测试订单数**≤**5 笔,当天支付订单必须当天反馈易能时代工作人员申请退款,隔天订单不予退款申请操作。如需测试 10 元 ≤ 订单支付金额 ≤1000 元),请使用易能时代正式环境测试油站 id:21413。
· 测试环境获取的油站均可进行测试操作。
#
经纬度类型· 易能时代经纬度为百度坐标系
#
三、 Java 项目使用说明#
说明#
1、springboot 项目提示:具体请参考demo-springboot
项目
#
1、引包#
1.maven :#
2.gradle:#
3.直接使用 jar 包引入#
2、配置Bean 配置
参数说明
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
domain | 是 | string | 必须参数, 易能时代环境地址 测试: https://dev.ejiayou.com 正式: https://api.ejiayou.com |
platform-name | 是 | string | 平台标识,调用 API 接口必须参数,由易能时代产品提供 |
before-key | 是 | string | 调用 API 接口必须参数,由易能时代产品提供 |
after-key | 是 | string | 调用 API 接口必须参数,由易能时代产品提供 |
#
3、使用#
API 调用 :#
2、普通 spring 项目提示:具体请参考demo-spring
项目
#
1、引包#
1.maven :#
2.gradle:#
3.直接使用 jar 包引入#
2、配置参数说明
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
domain | 是 | string | 必须参数, 易能时代环境地址 测试: https://dev.ejiayou.com 正式: https://api.ejiayou.com |
platform-name | 是 | string | 平台标识,调用 API 接口必须参数,由易能时代产品提供 |
before-key | 是 | string | 调用 API 接口必须参数,由易能时代产品提供 |
after-key | 是 | string | 调用 API 接口必须参数,由易能时代产品提供 |
#
3、使用#
3、普通 Java 项目提示:具体请参考demo-java
项目
#
1、引包#
1.maven :#
2.gradle:#
3.直接使用 jar 包引入#
2、配置初始化 config EjiayouConfig config = new EjiayouConfig(domain, platformName, beforeKey, afterKey, plat, appKey, appSecret);
参数说明
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
domain | 是 | string | 必须参数, 易能时代环境地址 测试: https://dev.ejiayou.com 正式: https://api.ejiayou.com |
platform-name | 是 | string | 平台标识,调用 API 接口必须参数,由易能时代产品提供 |
before-key | 是 | string | 调用 API 接口必须参数,由易能时代产品提供 |
after-key | 是 | string | 调用 API 接口必须参数,由易能时代产品提供 |
#
3、使用#
API 调用 :#
四、PHP 项目使用说明#
说明供使用 PHP 开发合作方使用。
#
PHP 项目#
1、下载使用 composer 工具下载
打开命令行工具,进入项目目录下执行:
#
2、配置安装完成后,打开新增的vendor
文件夹,找到里边的EjyConfig.php
,按对接文档给应的配置参数做修改即可(文件路径: vendor/ejiayou/p-openapi/src/EjyConfig.php)
参数说明 | 参数名 | 必选 | 类型 | 说明 | | :------------ | :-----: | :----- | :----- | | domain | 是 | string | 必须参数, 易能时代环境地址 测试: https://dev.ejiayou.com 正式: https://api.ejiayou.com | | platform-name | 是 | string |平台标识,调用 API 接口必须参数,由易能时代产品提供 | | before-key | 是 | string |调用 API 接口必须参数,由易能时代产品提供 | | after-key | 是 | string | 调用 API 接口必须参数,由易能时代产品提供 | | Version | 是 | string | SDK 版本号 |
#
3、使用如果使用的是laravel
、yii
框架等,使用示例:
非 PHP 框架使用示例:
#
五、API 参数说明#
1、油站列表: stationList()#
接口描述合作平台可通过该接口查询获取到易能时代开放给合作方的油站列表数据。需每天分阶段同步数据,每天默认访问次数限制为 24 次。
#
特别提醒#
参数:无#
返回示例:#
返回参数说明:参数名 | 类型 | 说明 |
---|---|---|
code | string | 200 表示成功,其他失败 |
msg | string | 提示消息,成功为 SUCCESS |
data | string | 返回 stationList 数据 |
#
staionList 说明参数名 | 类型 | 说明 |
---|---|---|
stationId | int | 油站 id |
stationName | string | 油站名称 |
provinceName | String | 省份 |
cityName | String | 城市 |
latitude | string | 纬度,百度坐标系 |
longitude | string | 经度,百度坐标系 |
location | string | 地址 |
starNum | string | 评分 |
phone | string | 电话 |
stationPic | string | 油站小图 |
stationBannerPic | string | 油站大图 |
district | string | 地区 |
provinceId | int | 省份编号 |
cityId | int | 城市编号 |
stationType | int | 1 中石油,2 中石化,3 壳牌,4 其他 |
#
prices 返回参数说明参数名 | 类型 | 说明 |
---|---|---|
oilId | string | 油号 id |
oilCode | string | 油号 |
oilType | int | 1.汽油 2.柴油 |
countryPrice | string | 国家价 |
stationPrice | string | 油站挂牌价 |
discountPrice | string | 优惠后单价 |
oilgunCodes | array | 油枪号列表 |
#
adverts 返回参数说明参数名 | 类型 | 说明 |
---|---|---|
id | string | id,活动标签的唯一标识 |
weight | string | 权重,999 为最高权重 |
oilType | int | 单字图标文案 |
singleWordIcon | string | 图标内文案 |
titleWithinIcon | string | 图标后文案 |
#
温馨提示:adverts 返回参数建议在油站列表中进行展示,方便后期做活动运营,如不展示后续运营活动可能存在客诉情况,展示示例如下(仅供参考):
#
2、油站详情信息: stationDetail(StationDetailParam param)#
接口描述:合作平台通过请油站详细信息接口,获取易能时代油站的详细数据。
#
StationDetailParam 参数:参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
userPhone | 是 | string | 用户手机号码 |
stationId | 是 | string | 油站 ID |
#
返回参数说明:参数名 | 类型 | 说明 |
---|---|---|
code | string | 200 表示成功,其他失败 |
msg | string | 提示消息,成功为 SUCCESS |
data | string | 业务参数 |
参数名 | 类型 | 说明 |
---|---|---|
feeValue | double | 服务费 |
threshold | double | 临界阈值,优惠大于等于这个值收取手续费 |
limitCount | string | 油站每天单个用户优惠次数 |
orderCount | string | 用户当天已加油次数 |
#
prices 返回参数说明:参数名 | 类型 | 说明 |
---|---|---|
oilId | string | 油号 id |
oilCode | string | 油号 |
oilType | Int | 1.汽油 2.柴油 |
countryPrice | String | 国家价 |
stationPrice | string | 油站挂牌价 |
discountPrice | string | 优惠后单价 |
oilgunCodes | array | 油枪号列表 |
#
3、计算订单 : computeOrder(ComputeOrderParam param)#
接口描述在创建订单前,合作平台可通过该接口查询用户该笔订单的应付金额。
#
ComputeOrderParam 参数:拼接参数 | 必选 | 类型 | 说明 |
---|---|---|---|
stationId | 是 | string | 易能时代油站 ID |
oilgunCode | 否 | string | 易能时代油枪编号 |
totalAmount | 是 | string | 订单总金额,即用户输入金额,保留两位小数 |
phoneNumber | 是 | string | 创建订单的手机号码 |
userCouponId | 是 | int | 用户优惠券编号 |
#
返回示例:#
返回参数说明:参数名 | 类型 | 说明 |
---|---|---|
code | string | 200 表示成功,其他失败 |
msg | string | 提示消息,成功为 SUCCESS |
data | Object | 接口响应参数 |
oilMass | BigDecimal | 油量,单位升,保留两位小数 |
payAmount | BigDecimal | 用户本单应支付的金额,保留两位小数 |
serviceFee | BigDecimal | 服务费,保留两位小数(服务费规则具体咨询易能时代工作人员) |
discountAmount | BigDecimal | 直降优惠金额,保留两位小数 |
couponAmount | BigDecimal | 优惠券(若有使用优惠券)优惠金额,保留两位小数 |
discountPrice | string | 最终享受单价 |
countryPrice | BigDecimal | 国家价 |
stationPrice | BigDecimal | 挂牌价 |
payUnitPrice | BigDecimal | 用户享受单价 |
payAmoun--用户支付金额计算公式说明
假设 totalAmount=100,stationPrice=6.92
(1)假设用户享受油站直降优惠 10 元,同时选择 100 减 20 元优惠券 oilMass=100/6.92,serviceFee=1.50,discountAmount=10,couponAmount=20 优惠金额=10+20-1.5=28.5 元,用户本单应支付金额为 100-28.5=71.5 元;
(2)假设用户仅享受油站直降优惠 10 元,无优惠券 oilMass=100/6.92,serviceFee=1.50,discountAmount=10 优惠金额=10-1.5=8.5 元,用户本单应支付金额为 100-8.5=91.5 元;
(3)假设用户无直降优惠,无优惠券 oilMass=100/6.92,serviceFee=1.50,discountAmount=10 优惠金额=-1.5 元,用户本单应支付金额为 100-(1.5)=101.5 元。
#
4、创建订单接口 : createOrder(CreateOrderParam param)#
接口描述为第三方平台提供统一的创建订单接口。
#
请求示例:#
CreateOrderParam 参数:参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
stationId | 是 | Integer | 易能时代油站 ID |
oilgunCode | 是 | Integer | 易能时代油枪编号 |
totalAmount | 是 | string | 订单总金额,即用户输入金额,保留两位小数 |
phoneNumber | 是 | string | 创建订单的手机号码 |
hadInvoice | 否 | Boolean | 是否需要发票 |
invoiceHead | 否 | String | 发票抬头 |
invoiceNumber | 否 | String | 个人税号 |
plateNumber | 否 | String | 车牌号码 |
userCouponId | 否 | String | 用户优惠券编号 |
outOrderSign | 否 | String | 第三方订单号 |
#
响应示例:#
返回参数说明:参数名 | 类型 | 说明 |
---|---|---|
code | Integer | 200 表示成功,其他失败 |
msg | string | 提示消息,成功为 SUCCESS |
data | Object | 业务参数 |
#
响应接口参数说明:参数名 | 类型 | 说明 |
---|---|---|
orderSign | String | 易能时代订单标识 |
oilMass | BigDecimal | 油量,单位升,保留两位小数 |
payAmount | BigDecimal | 用户支付金额,保留两位小数 |
serviceFee | BigDecimal | 必须 服务费,保留两位小数 |
discountAmount | BigDecimal | 必须 直降优惠金额,保留两位小数 |
couponAmount | BigDecimal | 必须 优惠券优惠金额,保留两位小数 |
#
5、订单支付回告 : orderPayment(OrderPaymentParam param)#
接口描述第三方平台可通过该接口回告订单的支付状态。
#
OrderPaymentParam 参数:参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
outOrderSign | 是 | string | 第三方订单号 |
outOrderSign | 是 | string | 第三方平台订单标识 |
payAmount | 是 | string | 用户支付金额 |
#
返回示例:#
返回参数说明:参数名 | 类型 | 说明 |
---|---|---|
code | Integer | 200 表示成功,其他失败 |
msg | string | 提示消息,成功为 SUCCESS |
data | Object | 业务参数 |
#
6、取消订单 : cancelOrder(CancelOrderParam param)#
接口描述#
CancelOrderParam 参数:参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
outOrderSign | 是 | string | 第三方订单号 |
orderId | 是 | string | 易能时代订单号 |
#
返回示例:#
返回参数说明:参数名 | 类型 | 说明 |
---|---|---|
code | Integer | 200 表示成功,其他失败 |
msg | string | 提示消息,成功为 SUCCESS |
data | Object | 业务参数 |
#
7、财务对账 : finance(FinanceParam param)#
接口描述第三方平台可通过该接口查询历史订单,查询时间段最大为 31 天。
#
FinanceParam 参数:拼接参数 | 必选 | 类型 | 说明 |
---|---|---|---|
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 | 1-支付 2-退款 |
#
8、用户个人订单查询 :orderHistory(OrderHistoryParam param)#
接口描述:用户个人订单查询接口,由易能时代返回用户的历史订单数据
#
OrderHistoryParam 参数:参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
userPhone | 是 | string | 手机号码 |
stationIds | 否 | string | 油站 id,为空默认查询所有油站订单记录,如指定 12 号油站输入:12;可传传多个值,用 ‘ ,’ 英文逗号隔开 |
page | 是 | int | 分页,表示当前页数,每页固定 10 条数据 |
返回示例:
#
返回参数说明:参数名 | 类型 | 说明 |
---|---|---|
code | string | 200 表示成功,其他失败 |
msg | string | 提示消息,成功为 SUCCESS |
data | string | 订单数据 |
#
data 参数说明:参数名 | 类型 | 说明 |
---|---|---|
consumeTimes | String | 消费次数 |
allPaySum | String | 共支付 |
saveMoney | String | 共节省 |
orderList | List | 历史订单列表 |
orderQuantity | int | 订单数,只有 stationsIds 不为 0 时才会给出 |
currentPageNum | int | 当前页数 |
allPageNum | int | 所有数量 |
personalInfo | PersonalInfo 类 | 个人信息类 |
历史订单列表参数名 | 类型 | 说明 |
---|---|---|
orderId | String | 订单号 |
stationName | String | 油站名称 |
stationPic | String | 油站图片 |
payTime | String | 支付时间 |
orderSum | String | 订单金额 |
reduceSum | String | 优惠金额 |
orderState | int | 订单状态 2 为正常订单,3 为退款中订单,4 为已退款订单 |
hasStationPhone | int | 1 为有油站电话 0 为没有油站电话 |
stationPhone | String | 油站电话 |
oilCode | String | 油号 |
originalCost | String | 订单原价 |
oilMass | String | 加油升数 |
#
9、退款申请 : refund(RefundParam param)#
接口描述用户在第三方平台上发起退款申请,可通过该接口通知易能时代申请是否给予处理退款(30 分钟内可用直接用该接口发起退款申请,30 分钟后,需要联系易能时代客服发起退款
#
RefundParam 参数:参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
platformName | 是 | string | 平台标识 由易能时代产品提供 |
userPhone | 是 | string | 用户手机号码 |
orderId | 是 | string | 易能时代订单号 |
sign | 是 | string | 签名见《特定接口签名规则》 |
timestamp | 是 | long | 时间戳,单位秒 |
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
reason | 是 | string | 退款原因 |
#
返回示例:#
返回参数说明:参数名 | 类型 | 说明 |
---|---|---|
code | string | 200 表示成功,其他失败 |
msg | string | 提示消息,成功为 SUCCESS |
#
Data 说明:参数名 | 类型 | 说明 |
---|---|---|
orderId | double | 易能时代订单 id |
refundTime | double | 退款时间 |
status | string | 1.订单审核中 2.订单已退款 3.审核不通过 |
msg | string | 退款申请状态信息 |
userPhon | string | 用户手机号 |
#
10、用户个人优惠券查询 :merchandiseQuery(MerchandiseQueryParam param)#
接口描述:第三方平台可通过该接口为用户查询领取到的优惠券。
#
MerchandiseQueryParam 参数:参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
userPhone | 是 | string | 手机号码 |
platformName | 是 | string | 平台名称 |
sign | 是 | string | 签名 |
timestamp | 是 | long | 时间戳,单位秒 |
#
返回参数说明:参数名 | 类型 | 说明 |
---|---|---|
name | String | 优惠券名字 |
nameExt | String | 名字扩展 如 加油券·元岗开业钜惠 |
limitTime | String | 优惠券有效期 |
limitTimeExplain | String | 有效期扩展说明 如全天可用 12 点到 14 点可用等 |
merchandiseType | int | 优惠券类型 1 直减券(现金券) 2 折扣券, 6 直降券 |
value | String | 优惠券值 |
valueExplain | String | 优惠券限制金额解释,满多少可用 |
enabled | int | 1 为可用,2 为不可用 |
unavailableCause | String | 不可用原因 如可用 本字段为 null |
moreRules | String | 更多规则 |
stationNum | int | 可用油站数,-1 为全部可用 |
type | int | 优惠券类型 1 为油品 2 为商品 3 为洗车 |
userCouponId | String | 优惠券 id,优惠券唯一表示 |
limitStations | list | 限制油站集合 |
#
limitStations 参数说明参数名 | 类型 | 说明 |
---|---|---|
stationName | String | 油站名称 |
url | String | 油站图标 url |
stationId | int | 油站 id |
longitude | String | 经度,百度坐标系 |
latitude | String | 纬度,百度坐标系 |
address | String | 油站地址 |
#
11、发券接口 : sendMerchandise(SendMerchandiseParam param)#
接口描述#
SendMerchandiseParam 参数:参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
userPhone | 是 | string | 用户手机号码 |
sourceId | 是 | string | 优惠券活动 id |
#
返回参数说明:参数名 | 类型 | 说明 |
---|---|---|
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 折扣券, 6 直降券 |
#
六、接口接入说明#
1、P 端收银台#
接口描述第三方平台可通过该接口创建订单并拉起易能时代支付页面。
#
请求方式#
Path:#
Method: POST#
示例:#
路径参数说明:参数**名** | 必选 | 类型 | 说明 | 是否参与签名 |
---|---|---|---|---|
platformName | 是 | string | 平台标识,由易能时代提供 | 否 |
stationId | 是 | int | 油站编号 | 是 |
sign | 是 | string | 签名见《特定接口签名规则》 | 否 |
timestamp | 是 | long | 时间戳 单位秒 对用 url 中{timestamp} | 否 |
phoneNumber | 是 | string | 手机号 | 是 |
payType | 是 | int | 支付方式 1:微信 2:支付宝 | 是 |
oilgunCode | 是 | int | 油枪号 | 是 |
totalAmount | 是 | string | 订单金额 | 是 |
返回示例
#
2、兑换优惠券#
接口描述第三方平台可通过该接口对易能时代发放的优惠券兑换码进行兑换。
#
请求方式#
Path:Method: POST
#
示例:#
路径参数:路径参数 | 必选 | 类型 | 说明 |
---|---|---|---|
platformName | 是 | string | 平台名称,由易能时代产品提供正式/测试的 platformName |
sign | 是 | string | 签名见《特定接口签名规则》 |
timestamp | 是 | long | 时间戳,单位秒 |
#
Body 参数:参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
exchangeCode | 是 | string | 兑换码 |
userPhone | 是 | string | 用户手机号或用户标识 |
#
返回示例:#
返回参数说明:参数名 | 类型 | 说明 |
---|---|---|
code | Integer | 200 表示成功,其他失败 |
msg | String | 提示消息,成功为 SUCCESS |
data | Object | 接口响应参数 |
status | int | 1-成功 2-活动已结束 3-该优惠码已经被领取或您已经参与此活动了 4-优惠码输入错误 |
#
3、支付状态/退款状态回调通知#
接口描述需由易能时代调用第三方平台接口,调用地址由易能时代工作人员在后台进行配置。
#
特别提醒提供 URL 时请按以下格式告知易能时代工作人员,如:测试环境/正式环境+支付/退款回调 URL
用户完成支付/申请退款,合作方将订单订单状态同步至易能时代,易能时代会把支付/退款结果发送给合作方服务端,合作方服务端接 s 收到结果后无需返回应答。
支付/退款回调通知务必要做签名验证,保证请求参数与易能时代平台参数的一致性
#
请求方式Method: GET
Header application/json
#
请求示例#
路径参数:参数名 | 类型 | 说明 | 是否参与签名 |
---|---|---|---|
orderId | string | 易能时代内部订单流水号 | 是 |
phone | string | 手机号码 | 是 |
province | string | 省份名称 | 是 |
city | string | 城市名字 | 是 |
stationName | string | 油站名称 | 是 |
oilCode | string | 油号名称 | 是 |
originalCost | string | 机显金额(元) | 是 |
couponMoney | string | 优惠券金额(元) | 是 |
orderSum | string | 用户实际支付金额(元) | 是 |
oilMass | string | 加油升数(升) | 是 |
payType | string | 1.微信 2.支付宝 | 是 |
dateTime | string | 支付/退款时间 | 是 |
status | int | 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 端,跳转前把数据放进 seesionStorage 里 | 是 |
#
返回示例#
响应参数:参数名 | 必填 | 类型 | 说明 |
---|---|---|---|
returncode | 是 | String 返回码 SUCCESS 为成功,即订单支付成功或订单退款成功,否则为失败,会重复回调 8 次,每次间隔 15 秒(注意:支付成功/退款成功通知为油站方与用户核实确认的订单) |
#
签名验证方法:1.按字段的 key 进行排序,拼接 key=value 字符,使用&符号连接,最后加上 sk(由我方提供)(注意:sk 前也 用 & 连接)Charset 为 UTF8
示例
2.对整体字符串进行 MD5 加密,Charset 为 UTF8
#
七.特定接口签名规则#
签名生成的通用步骤如下:第一步: 设所有发送或者接收到的数据为集合 M,将集合 M 内非空参数值的参数按照参数名 ASCII 码从小到大排序(字典序),使用 URL 键值对的格式(即 key1=value1&key2=value2…)拼接成字符串 stringA。
特别注意以下重要规则:
· 参数名 ASCII 码从小到大排序(字典序);
· 如果参数的值为空不参与签名;
· 参数名区分大小写;
· 路径上的参数不参与签名(timestamp 除外)。
第二步: 在 stringA 最后依次拼接上路径参数上的 timestamp 和提供给平台的 beforeKey 、afterKey 得到 stringSignTemp 字符串,并对 stringSignTemp 进行 MD5 运算,再将得到的字符串所有字符转换为大写,得到 sign 值 signValue。
#
签名示例假设请求接口为 oreo/ejiayou_open_api/orders/v2/{platformName}/{sign}/{timestamp}
假设传送的参数为:stationId 为 12,oilgunCode 为 5,totalAmount 为 1,phoneNumber 为 183xxxxxxxx
1、POST 请求 body 参数格式 json 格式
#
2、GET 请求参数格式第一步:对参数按照 key=value 的格式,并按照参数名 ASCII 字典序排序如下:
第二步:拼接 timestamp 和平台的 beforeKey 、 afterKey
最后将得到的 sign 值以路径参数的形式发送即可。