服务端 Api & Demo
服务端 Api 地址
签名规则
对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串,把appsecret私钥加在最后,md5加密。
eg:appCode={appCode}&appKey={appKey}×tamp={timestamp}&appsecret={appsecret}
获取AccessToken
请求url
请求方式
- POST
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appCode | 是 | string | 第三方应用Code |
appKey | 是 | string | 公钥 |
timestamp | 是 | long | 时间戳 |
sign | 是 | string | 签名,详见签名规则 |
返回示例
{
"accessToken":"0",
"timeout":"过期时间间隔毫秒"
}
返回参数说明
参数名 | 类型 | 说明 |
---|---|---|
accessToken | string | accessToken |
timeout | string | 过期时间间隔毫秒 两小时 |
用户信息
请求url
请求方式:
- GET
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
accesstoken | 是 | string | accesstoken |
请求示例
HTTP Method = GET
Request URI = /thirdparty/4b7065e21c40070d6ec5ac2ed1375597/userinfo
Parameters = {accesstoken=[6f275b72b3ee477c868e2bf96409b2b3]}
返回示例
{
"userId" :"",
"companyId" :"",
"phone":"",
"realName" :"",
"nickName" :"",
"avatar":""
}
返回参数说明
参数名 | 类型 | 说明 |
---|---|---|
userId | string | 用户ID |
companyId | string | 当前登录公司ID |
phone | string | 手机号码 |
realName | string | 姓名 |
nickName | string | 昵称 |
avatar | string | 头像 |
预下单
请求URL:
请求方式:
- POST
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
openId | 是 | string | 当前登录的用户openId |
appCode | 是 | string | 第三方应用Code |
tpOrderId | 是 | string | 第三方订单号 |
totalAmount | 是 | double | 订单总金额 |
notifyUrl | 是 | string | 服务器异步通知接口 |
payResultUrl | 是 | string | 支付结束页面跳转url |
orderCode | 是 | string | 商城交易订单号 |
tradeName | 是 | string | 交易名称,商户订单的标题/商品名称/关键字等 |
tradeDesc | 是 | string | 交易描述,商户订单的具体描述信息 |
couponCode | 否 | string | 优惠券CODE |
couponPrice | 否 | long | 优惠券抵扣金额 |
返回参数说明
参数名 | 类型 | 说明 |
---|---|---|
prePayId | string | 预支付订单号 |
消息推送
请求URL:
请求方式:
- POST
请求参数:
Header
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appcode | 是 | string | 第三方应用Code |
appkey | 是 | string | 公钥 |
timestamp | 是 | long | 时间戳 |
sign | 是 | string | 签名,详见签名规则 |
Content
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
openId | 否 | string | 第三方使用为必填#当前登录的用户openId |
sendMethod | 是 | int | 消息方式 0:全部(消息+推送)#1:消息#2推送 |
title | 是 | string | 消息标题 |
content | 是 | string | 消息内容 |
platform | 是 | int | 推送平台 0:all 1:IOS#2:Android |
scope | 是 | int | 消息范围,0:全局消息#1:单用户消息#2:群组tag |
uid | 否 | string | 接收用户uid,(内部使用)scope=1时,不为空 ,多个uid逗号分隔 |
pushTag | 否 | string | 群组,scope为2时 不为空 ,多个pushTag分号分隔 |
openType | 是 | int | 客户端打开方式 1:原始文本#2:打开Web网页#3:打开本地原生页面#4:打开本地包 |
extraData | 是 | string | 扩展数据 |
extraData说明
根据openType类型 判断如何显示:
openType = 1(纯文本)
extraData = xxxxxx很长的文本" "
openType = 2(打开Web网页)
extraData = http://www.baidu.com
openType = 3(打开原生界面)
extraData = msNative://CompanySuccess?companyName=XXXXXX&companyId=xxx
extraData = msNative://CompanyRefuse?companyName=XXXXXX&companyId=xxx
openType = 4(打开本地包)
extraData = msPackage://appCode(包唯一标识)|index.html?xxx=xxx&xxx=xxx(指定页面带参数)
返回参数说明
参数名 | 类型 | 说明 |
---|---|---|
code | int | 是否发送成功 0=失败 ,1=成功 |
msg | String | 返回信息 |
测试应用信息:
appCode
10001
appKey
74156a19a8dd4db8abc603ecd21025d780398ef0ff524d13918f4dc2678f64283f7824d11a3b4f52823e83f874b0b7277f4abf9e37264c989ef6d389100110c2
appSecret
42c106a06f5e406ab387cadd17c44b91601d009bc5df44969bdafc5a09f09206881cf49771b14b6a86c0edb745500de1042b9afb80a648c5b66340cf40d37627
错误码信息
//ACCESS TOKEN不可用,请重新获取
BizException ACCESS_TOKEN_INVALID = new BizException(104001, "ACCESS TOKEN不可用,请重新获取");
//ACCESS TOKEN过期
BizException ACCESS_TOKEN_EXPIRED = new BizException(104002, "ACCESS TOKEN过期");
//ACCESS TOKEN不能为空
BizException ACCESS_TOKEN_BLANK = new BizException(104003, "ACCESS TOKEN不能为空");
//非法的安全域IP
BizException DOMAIN_IP_INVALID = new BizException(104004, "非法的安全域IP");
//appId不可用
BizException APPCODE_INVALID = new BizException(104005, "appId不可用");
//申请accesstoken信息非法
BizException ACCESS_TOKEN_REQ_INFO_INVALID = new BizException(104006, "申请accesstoken信息非法,请检查appId,appSecret");
BizException OPENID_INVALID = new BizException(104007, "openId不可用,没有找到对应手机用户");