upRequestModule 优家服务接口签名请求模块
模块概述
upRequestModule提供通过原生请求优家服务接口的能力,可以避免H5前端直接请求server接口时跨域问题并且自带优家服务接口签名认证算法
注意: 用私有的appId时需要在headers中特殊说明,并且保证appId和私有appId传递的值一致
使用GET方法不应传入body
本文档中三个方法均只在url为空的情况下返回参数错误,其他参数需要跟服务端做约定
方法列表
- signRequest(signRequest 签名请求)
- dynamicSignRequest(防盗刷签名请求)
- signRequestCache (signRequest缓存 签名请求,Method必须为GET,useCache为1)
公共数据
所有数据均以JSON结构返回,由retCode,retInfo,retData三个固定部分;
如果调用的请求接口的返回数据中有相应属性:retCode、retInfo,则这两个属性将按照调用的请求接口返回数据填充
调用的请求接口的返回数据原样填充到retData中
触发成功回调,只表示网络连接接口成功,业务是否成功请识别retCode是否返回接口定义的成功code码或者从retData判断
{
"retCode": "000000",
"retInfo": "操作成功",
"retData": datas,
}
模块变更记录
- V3.0.0
- 新增方法:signRequest(signRequest 签名请求)
- V3.2.0
- request模块未定义的retCode编码按照通用数据规定变为990001,新增'Json转换出错'的retCode为290001
- 新增方法:dynamicSignRequest(防盗刷签名请求)
- V3.3.0
- V4.0.0
方法说明
signRequest (signRequest 请求)
signRequest({params})
适用性
容器 |
Nebula |
支持情况 |
是 |
APP版本 |
6.12.0 及以上 |
params 输入参数:
属性名 |
数据类型 |
是否必填 |
说明 |
url |
String |
是 |
server 接口地址 |
headers |
Object |
否 |
接口所需headers,headers里需要填入除了sign属性外其他server接口要求的属性字段 |
body |
String |
否 |
传输的body,json字符串,GET方法不传 |
method |
String |
否 |
请求类型:'GET' 'POST' 'PUT' 'DELETE' |
signType |
String |
否 |
签名算法: 'SHA256' 'MD5' |
transform |
Boolean |
否 |
true: 域名转换为ip false:不做转换(默认) |
错误返回 retCode说明:
按照通用
正确返回 retData说明:
属性名 |
数据类型 |
说明 |
datas |
Object |
server接口返回的业务数据 |
示例:
uplusapi.upRequestModule.signRequest({
url:'http://uhome.haier.net/',
headers:{},
body:JSON.stringfy({signKey:'appSign'}),
method:'POST',
signType:'MD5',
transform:true
}).then((result) => {
console.log('result',result);
}).catch((err) =>{
console.log('err',err);
});
dynamicSignRequest (防盗刷签名请求)
dynamicSignRequest({params})
适用性
容器 |
Nebula |
支持情况 |
是 |
APP版本 |
6.12.0 及以上 |
params 输入参数:
属性名 |
数据类型 |
是否必填 |
说明 |
url |
String |
是 |
server 接口地址 |
headers |
Object |
否 |
接口所需header |
body |
String |
否 |
传输的body,json字符串,GET方法不传 |
method |
String |
否 |
请求类型:,包括但不限于'GET' 'POST',具体参考接口所需方式 |
signKey |
any |
否 |
动态签名算法,具体值需接口提供 |
transform |
Boolean |
否 |
true: 域名转换为ip false:不做转换(默认) |
说明:并非所有接口都可以直接拿来用作防盗刷接口,需要服务端处理,约定动态签名signKey
错误返回 retCode说明:
retCode编码 |
retInfo说明 |
000001 |
按实际情况 |
正确返回 retData说明:
属性名 |
数据类型 |
说明 |
datas |
Object |
server接口返回的业务数据 |
示例:
uplusapi.upRequestModule.dynamicSignRequest({
url:'http://uhome.haier.net/omsappapi/v2/coin/v2/sign',
headers:{'Content-Type':'application/json'},
body:JSON.stringfy({signKey:'appSign'}),
method:'POST',
signKey:'appSign',
transform:true
}).then((result) => {
console.log('result',result);
}).catch((err) =>{
console.log('err',err);
});
新增方法:signRequestCache 新增方法:signRequestCache 请求)
新增方法:signRequestCache({params})
适用性
容器 |
Nebula |
支持情况 |
是 |
APP版本 |
6.12.0 及以上 |
params 输入参数:
属性名 |
数据类型 |
是否必填 |
说明 |
url |
String |
是 |
server 接口地址 |
headers |
Object |
否 |
接口所需headers,headers里需要填入除了sign属性外其他server接口要求的属性字段 |
body |
String |
否 |
传输的body,json字符串,GET方法不传 |
method |
String |
否 |
请求类型:'GET' 'POST' 'PUT' 'DELETE' |
只对GET请求生效 |
signType |
String |
否 |
签名算法: 'SHA256' 'MD5' |
transform |
Boolean |
否 |
true: 域名转换为ip false:不做转换(默认) |
useCache |
String |
否 |
'1': 使用缓存 '0':不使用缓存 |
signRequestCallback |
any |
否 |
signRequest请求的callback |
错误返回 retCode说明:
retCode编码 |
retInfo说明 |
000001 |
按实际情况 |
正确返回 retData说明:
属性名 |
数据类型 |
说明 |
datas |
Object |
server接口返回的业务数据 |
示例:
uplusapi.upRequestModule.signRequestCache({
url: 'https://s.ehaier.com/search/commonLoadItemNew.html?pholder=1&productCateId=2729&provinceId=16&cityId=173&districtId=2450&streetId=12036596&fromType=1&memberId=&qs=isHotDesc&filterData=&pageIndex=3&pageSize=10',
body: null,
headers: {},
method: 'GET',
signType: 'MD5',
transform: false,
useCache: '1',
signRequestCallback
}).then((res) => {
console.log('result',res);
}).catch((err) => {
console.log('err',err);
});
function signRequestCallback(ret) {
alert(JSON.stringify(ret));
}