Skip to main content

API收银台

一、 对接流程#

img

核心业务流程说明

A、合作方服务端向易能时代调取“油站列表”接口,该接口每天限制最多只能调取 24 次。易能时代根据合作方的请求,向合作方返回油站列表信息,合作方用户端向合作方服务端请求油站信息列表,合作方服务端根据以获取的油站列表返回对应油站列表信息给到合作方用户端;

B、合作方用户端向合作方服务端请求进入油站详情页,合作方服务端向易能时代“油站详细信息”接口发起请求,获取油站详情信息,易能时代向合作方服务端返回对应油站详情信息,合作方用户端获取油站详情信息,进入油站详情信息界面;

C、合作方用户选定油枪、油品及购买金额后,向合作方服务端提交订单,合作方服务端向易能时代“创建订单”接口发起请求;

a、如果合作方服务端向易能时代请求校验未通过,则返回创建失败的结果,合作方服务端收到易能时代订单创 建失败的结果,返回给合作方用户端,此时合作方用户端需要重新走订单支付流程;

b、如果合作方服务端向易能时代请求校验通过,则返回创建成功的结果,合作方服务端收到易能时代订单创建 成功的结果,返回给合作方用户端,订单创建成功;

D、合作方用户端向合作方服务端发起支付请求,合作方服务端向易能时代“P端收银台”接口发起支付请求

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、油站列表#

接口描述#

合作平台可通过该接口查询获取到易能时代开放给合作方的油站列表数据。需每天分阶段同步数据,每天默认访问次数限制为 24 次。

特别提醒#

少数油站油价信息会在当天某个时刻因客观原因进行调整,为避免客诉,建议合作方每一小时获取一次油站列表数据;同时为了避免各平台在同一时刻请求接口导致无法获取油站列表数据,建议可错峰拉取,例如在一小时中的15分/30分/45分拉取。

请求方式#

Path:#
/oreo/ejiayou_open_api/stations/v2/{platformName}/{sign}/{timestamp}
Method: GET#
示例:#
https://pre.ejiayou.com/oreo/ejiayou_open_api/stations/v2/xxxx/14D431A6AAEA2BED9237C5F0E5211EDD/1531364788

请求参数说明#

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

返回参数说明:#

参数名类型说明
codestring200 表示成功,其他失败
msgstring提示消息,成功为 SUCCESS
datastring返回 stationList 数据
staionList 说明#
参数名类型说明
stationIdint油站 id
stationNamestring油站名称
provinceNameString省份
cityNameString城市
latitudestring纬度,百度坐标系
longitudestring经度,百度坐标系
locationstring地址
starNumstring评分
phonestring电话
stationPicstring油站小图
stationBannerPicstring油站大图
districtstring地区
provinceIdint省份编号
cityIdint城市编号
stationTypeint1 中石油,2 中石化,3 壳牌,4 其他
prices 返回参数说明#
参数名类型说明
oilIdstring油号 id
oilCodestring油号
oilTypeint1.汽油 2.柴油
countryPricestring国家价
stationPricestring油站挂牌价
discountPricestring优惠后单价
oilgunCodesarray油枪号列表
adverts 返回参数说明#
参数名类型说明
idstringid,活动标签的唯一标识
weightstring权重,999 为最高权重
oilTypeint单字图标文案
singleWordIconstring图标内文案
titleWithinIconstring图标后文案
温馨提示:adverts 返回参数建议在油站列表中进行展示,方便后期做活动运营,如不展示后续运营活动可能存在客诉情况,展示示例如下(仅供参考):#

img
img

2、油站列表分页(必接)- 新增#

接口描述:#

合作平台可通过该接口查询获取到易能时代开放给合作方的油站列表数据。需每天分阶段同步数据,每天默认访问次数限制为 24 次。

请求方式:#

Path:getStationPages/{currentPage}/{pageSize}/{platformName}/{sign}/{timestamp}

Method:GET

路径参数

参数名必选类型说明
platformNamestring平台名称,由易能时代产品提供正式/测试的platformName
signstring签名
timestamplong时间戳,单位秒
currentPageint当前页
pageSizeint分页大小

返回示例

{
"code": 0,
"data": [
{
"adverts": [
{}
],
"cityId": 0,
"cityName": "",
"invoiceType": 0,
"latitude": "",
"location": "",
"longitude": "",
"phone": "",
"prices": [
{
"countryPrice": 0,
"discountPrice": 0,
"isXyActivity": 0,
"oilCode": "",
"oilId": 0,
"oilType": "",
"oilgunCodes": [],
"stationPrice": 0
}
],
"provinceId": 0,
"provinceName": "",
"starNum": "",
"stationBannerPic": "",
"stationId": 0,
"stationName": "",
"stationOrgnization": 0,
"stationPic": "",
"stationType": 0
}
],
"message": "",
"success": true,
"totalCount": 0
}

返回参数说明:

参数名类型说明
codestring200 表示成功,其他失败
msgstring提示消息,成功为 SUCCESS
datastring返回 油站集合 数据
successboolean是否操作成功
totalCountInt总条数

油站集合数据返回参数说明

参数名类型说明
stationIdint油站 id
stationNamestring油站名称
provinceNameString省份
cityNameString城市
latitudestring纬度,百度坐标系
longitudestring经度,百度坐标系
locationstring地址
starNumstring评分
phonestring电话
stationPicstring油站小图
stationBannerPicstring油站大图
districtstring地区
provinceIdint省份编号
cityIdint城市编号
stationTypeint油站类型 : 1 中石油,2 中石化,3 壳牌,4 其他
defaultpayint是否支持微信支付:2:不支持 0:支持
prices 返回参数说明#
参数名类型说明
oilIdstring油号 id
oilCodestring油号
oilTypeint1.汽油 2.柴油
countryPricestring国家价
stationPricestring油站挂牌价
discountPricestring优惠后单价
oilgunCodesarray油枪号列表
adverts 返回参数说明#
参数名类型说明
idstringid,活动标签的唯一标识
weightstring权重,999 为最高权重
oilTypeint单字图标文案
singleWordIconstring图标内文案
titleWithinIconstring图标后文案

3、油站详情信息(必接)#

接口描述#

合作平台通过请油站详细信息接口,获取易能时代油站的详细数据。

请求方式#

Path:#
/oreo/ejiayou_open_api/platform/station/prices/v1/{platformName}/{userPhone}/{stationId}/{sign}/{timestamp}
Method: GET#
示例:#
https://pre.ejiayou.com/oreo/ejiayou_open_api/platform/station/prices/v1/xxxx/13000000000/12/14D431A6AAEA2BED9237C5F0E5211EDD/1531364788

路径参数:#

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

返回参数说明:#

参数名类型说明
codestring200 表示成功,其他失败
msgstring提示消息,成功为 SUCCESS
datastring业务参数
参数名类型说明
feeValuedouble服务费
thresholddouble临界阈值,优惠大于等于这个值收取手续费
limitCountstring油站每天单个用户优惠次数
orderCountstring用户当天已加油次数

返回示例:#

{
    "code":  200,
    "msg":  "SUCCESS",
    "data":  {
        "feeRules":  [
],
        "adverts":  [
],
        "serviceFeeType":  0,
        "limitCount":  2,
        "orderCount":  0,
        "prices":  [
            {
                "oilId":  "1",
                "stationPrice":  "8.00",
                "oilType":  "1",
                "discountPrice":  "6.64",
                "countryPrice":  "8.30",
                "iconInnerContent":  "满20升前5升享¥6.64/L",
                "oilgunCodes":  [
                    "10"               
],
                "isXyActivity":  0,
                "oilCode":  "92#",
                "iconOutererContent":  "加油满20升,总价满160元,前5升优惠价为¥6.64/L,超出5升部分优惠价为¥7.92/L;总价不满160元,优惠价为¥7.45/L"            
},
            {
                "oilId":  "2",
                "stationPrice":  "8.53",
                "oilType":  "1",
                "discountPrice":  "7.24",
                "countryPrice":  "8.83",
                "iconInnerContent":  "满20升前5升享¥7.24/L",
                "oilgunCodes":  [
                    "1"               
],
                "isXyActivity":  1          
}        
]    
}
}
prices 返回参数说明:#
参数名类型说明
oilIdstring油号 id
oilCodestring油号
oilTypeint1.汽油 2.柴油
countryPricestring国家价
stationPricestring油站挂牌价
discountPricestring优惠后单价
oilgunCodesarray油枪号列表
isXyActivityint0-参与,1-不参与
iconInnerContentstring图标内文案
iconOutererContentstring图标外文案,为避免客诉该字段为必接字段

Xy活动规则前端展示参考:#

img

4、取消订单(必接)#

接口描述#

取消订单接口,第三方可通过该接口取消待支付的订单。

请求方式#

Path:#
/oreo/ejiayou_open_api/platform/orders/cancel/v1/{platformName}/{sign}/{timestamp}
Method:POST#
示例:#
https://pre.ejiayou.com/oreo/ejiayou_open_api/platform/orders/cancel/v1/xxxx/14D431A6AAEA2BE
{
"outOrderSign": "1000000020059318"
}

路径参数:#

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

body 参数说明:#

参数名必选类型说明
outOrderSignstring第三方订单号

返回示例:#

{
"code": 200,
"msg": "SUCCESS",
"data": "取消订单成功"
}

5、用户个人优惠券查询(必接)#

接口描述#

合作平台用户可通过该接口查询在仅限合作方平台使用或者全平台使用的优惠券信息。

请求方式#

Path:#
/oreo/ejiayou_open_api/merchandise/query/(userPhone}/(platformName}/(sign}/(timestamp}
Method:GET#
示例:#
https://pre.ejiayou.com/oreo/ejiayou_open_api/merchandise/query/13000000000/xxxx/14D431A6AAEA2BED9237C5F0E5211EDD/1531364788

路径参数:#

参数名必选类型说明
userPhonestring手机号码
platformNamestring平台名称,由易能时代产品提供正式/测试的platformName
signstring签名见《sign签名规则》
timestamplong时间戳,单位秒
stationIdInteger易能时代油站 ID
oilgunCodeString易能时代油枪编号
totalAmountString订单总金额,即用户输入金额,保留两位小数
sign 签名规则:#
名称说明示例
beforeKey我们方提供的固定值(我方产品以邮件告知)echoejy
timestamp时间戳, 单位秒, 对应{timestamp}1531364788
afterKey我们方提供的固定值(我方产品以邮件告知)ko0s1dSqwo1XZ

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

返回参数说明:#

参数名类型说明
nameString优惠券名字
nameExtString名字扩展 如 加油券·元岗开业钜惠
limitTimeString优惠券有效期
limitTimeExplainString有效期扩展说明 如全天可用 12 点到 14 点可用等
merchandiseTypeint优惠券类型 1 直减券(现金券) 2 折扣券, 6 直降券
valueString优惠券值
valueExplainString优惠券限制金额解释,满多少可用
enabledint1 为可用,2 为不可用
unavailableCauseString不可用原因 如可用 本字段为 null
moreRulesString更多规则
stationNumint可用油站数,-1 为全部可用
typeint优惠券类型 1 为油品 2 为商品 3 为洗车
userCouponIdString优惠券 id,优惠券唯一表示
limitStationslist限制油站集合
limitStations 参数说明#
参数名类型说明
stationNameString油站名称
urlString油站图标 url
stationIdint油站 id
longitudeString经度,百度坐标系
latitudeString纬度,百度坐标系
addressString油站地址

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

接口描述#

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

请求方式#

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整图模块地址

7、申请退款(必接)#

接口描述#

img用户在第三方平台上发起退款申请,可通过该接口通知易能时代申请是否给予处理退款(30分钟内可用直接用该接口发起退款申请,30分钟后,需要联系易能时代客服发起退款)。申请退款流程参考【常见问题-4.退款申请流程】

请求方式#

Path:#
/oreo/ejiayou_open_api/platform/refund/v1/{platformName}/{userPhone}/{orderId}/{sign}/{timestamp}

Method:GET

示例:#
https://pre.ejiayou.com/oreo/ejiayou_open_api/platform/refund/v1/xxxx/13000000000/14D431A6AAEA2BED9237C5F0E5211EDD/1531364788?reason=付错油站了

路径参数:#

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

请求参数:#

参数名必选类型说明
reasonstring退款原因

返回示例:#

{
"code": 200, "msg": "SUCCESS",
"data": {
"orderId": "9000000020023544",
"status": "2",
"refundTime": "2018-11-29 15:19:26",
"msg": "此订单已经退款", "userPhone":"13111111111"
}
}

返回参数说明:#

参数名类型说明
codestring200 表示成功,其他失败
msgstring提示消息,成功为 SUCCESS
Data 说明:#
参数名类型说明
orderIddouble易能时代订单 id
refundTimedouble退款时间
statusstring1.订单审核中 2.订单已退款 3.审核不通过
msgstring退款申请状态信息
userPhonstring用户手机号

8、发券接口#

接口描述#

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

请求方式#

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 直降券

9、兑换优惠券#

接口描述#

第三方平台可通过该接口对易能时代发放的优惠券兑换码进行兑换。兑换优惠券流程参考【常见问题-5.用户获取优惠券流程】

请求方式#

Path:#
/oreo/ejiayou_open_api/platform/merchandise/exchange/v1/{platformName}/{sign}/{timestamp}

Method: POST

示例:#
https://pre.ejiayou.com/oreo/ejiayou_open_api/platform/merchandise/exchange/v1/test/14E3584DBCED5C2CD5DFC27B340E3EC5/1582526116956
{
"exchangeCode":"68979920",
"userPhone":"15813737176"
}
路径参数:#
路径参数必选类型说明
platformNamestring平台名称,由易能时代产品提供正式/测试的 platformName
signstring签名见《特定接口签名规则》
timestamplong时间戳,单位秒
Body 参数:#
参数名必选类型说明
exchangeCodestring兑换码
userPhonestring用户手机号或用户标识

返回示例:#

{
"code": 200,
"msg": "SUCCESS",
"data": {
"status": 2
}
}
返回参数说明:#
参数名类型说明
codeInteger200 表示成功,其他失败
msgString提示消息,成功为 SUCCESS
dataObject接口响应参数
statusint1-成功 2-活动已结束 3-该优惠码已经被领取或您已经参与此活动了 4-优惠码输入错误

10、P端收银台(必接)#

接口描述#

第三方平台可通过该接口创建订单并拉起易能时代支付页面。

请求方式#

Path:#
/pages/ejiayoupay/index_platform_new.html
Method: GET#
示例:签名见《特定接口签名规则》#
https://pre.ejiayou.com/pages/ejiayoupay/index_platform_new.html?totalAmount=2&phoneNumber=13888888888&oilgunCode=1&stationId=12&platformName=test&payType=1&sign=AAE62C51CE5419F92863B8E5AF124CED&timestamp=1591002874194

路径参数说明:#

参数**名**必选类型说明是否参与签名
platformNamestring平台标识,由易能时代提供
stationIdint油站编号
signstring签名见《特定接口签名规则》
timestamplong时间戳 单位秒 对用url中{timestamp}
phoneNumberstring手机号
payTypeint支付方式 1:微信 2:支付宝
oilgunCodeint油枪号
totalAmountstring订单金额
thirdPartyCouponAmountstring第三方优惠金额(在有优惠的情况下必填)
thirdPartyCouponTypeint第三方优惠类型(在有优惠的情况下必填)0:不可叠加券;1:可叠加券;3:会员积分抵扣;
thirdPartyCouponDesstring第三方优惠描述(在有优惠的情况下必填)
thirdPartyCouponUserIdstring第三方用户优惠券唯一标识(在有优惠券的情况下必填)

返回示例

11、财务对账(必接)#

接口描述#

第三方平台可通过该接口查询历史订单,查询时间段最大为 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-退款

12、计算订单(必接)#

接口描述#

在创建订单前,合作平台可通过该接口查询用户该笔订单的应付金额。

请求方式#

Path:#
/oreo/ejiayou_open_api/platform/order/compute/v1/{platformName}/{sign}/{timestamp}

Method:POST

示例:#
https://de.ejiayou.com/oreo/ejiayou_open_api/platform/order/compute/v1/xxxx/14D431A6AAEA2BED9237C5F0E5211EDD/1531364788

路径参数:#

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

请求示例:

{
"stationId": 12,
"oilgunCode": "5",
"totalAmount": "1",
"phoneNumber": "183xxxxxxxx"
}

请求参数:#

拼接参数必选类型说明
stationIdstring易能时代油站 ID
oilgunCodestring易能时代油枪编号
totalAmountstring订单总金额,即用户输入金额,保留两位小数
phoneNumberstring创建订单的手机号码
userCouponIdint用户优惠券编号

返回示例:

{
"code": 200,
"msg": "SUCCESS",
"data": {
"oilMass": 37.5940,
"payAmount": 108.93,
"serviceFee": 0.00,
"discountAmount": 91.07,
"couponAmount": 0,
"discountPrice": "2.90",
"countryPrice": 7.13,
"stationPrice": 5.32,
"payUnitPrice": 2.8976
}
}

返回参数说明#

参数名类型说明
codestring200 表示成功,其他失败
msgstring提示消息,成功为 SUCCESS
dataObject接口响应参数
oilMassBigDecimal油量,单位升,保留两位小数
payAmountBigDecimal用户本单应支付的金额,保留两位小数
serviceFeeBigDecimal服务费,保留两位小数(服务费规则具体咨询易能时代工作人员)
discountAmountBigDecimal直降优惠金额(含服务费计算),保留两位小数
couponAmountBigDecimal优惠券(若有使用优惠券)优惠金额,保留两位小数
discountPricestring最终享受单价
countryPriceBigDecimal国家价
stationPriceBigDecimal挂牌价
payUnitPriceBigDecimal用户享受单价

说明:#

payAmount(应付金额)=totalAmount(订单总金额)-discountAmount(直降优惠金额,含服务费)-couponAmount(优惠券优惠金额)

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

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

接口描述#

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

特别提醒#

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

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

  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
<groupldcommons-codec</groupld
<artifactldcommons-codec</artifactld
<version1.9</version
</dependency
//代码
DigestUtils.md5Hex(str);
spring:
//依赖
<dependency
<groupIdorg.springframework</groupId
<artifactIdspri ng-core</artifactId
<version4.3.6.RELEASE</version
</dependency
//代码
DigestUtils.md5DigestAsHex(str);

五、特定接口签名规则#

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

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. 已经按照签名规则进行生成,为什么还是提示签名错误#

API+收银台对接中,有两套签名规则,均在相应接口中有说明。

4. 退款申请流程#

30 分钟内可用申请退款接口发起退款申请,30 分钟后需要联系易能时代客服发起退款,30 分钟后用户电话联系易能时代客服退款成功通知仅能通过【退款回调接口】返回退款成功通知,油站不同意退款的订单不会返回任何通知。以下是 30 分钟内退款申请流程:

imgimg

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

imgimg

6. 用户个人优惠券查询接口返回的优惠券具体是哪种状态的优惠券:#

优惠券分为三种状态可用、不可用、已使用,目前仅返回可用和不可用这两种状态的优惠券,不只是当前有效的优惠券,也有可能是不在使用时间范围内的优惠券或者不满足使用条件的优惠券。

可用:该优惠全部返回,且在 unavailableCause 中返回 NULL,标明优惠券在当前时间范围内可用

不可用:该状态优惠券页全部返回,且在 unavailableCause 中会标明不可用原因,如:未到使用时间、限首单使用等

已使用:已使用优惠券信息是不返回的,除非用户在支付完成后又申请退款且退款成功,该优惠券就会信息就会返回,优惠券状态会按照可用和不可用两种状态展示。

7. 用户待支付订单会在一定时间范围内系统自动取消订单吗#

目前系统不支持自动取消订单,需要平台调取取消订单进行订单取消操作。如果用户一直未支付订单且为取消,订单状态会一直处在【待支付】状态。

img