文档中心
X-man活动工场接入标准API开发指南

活动工场接入标准API

1.说明

1.1 接口加解密

内部客户接口可不加密,外网调用数据必须加密验签,外部客户验签说明,密钥由活动工场平台提供。

如果采用加密验签方式,则以下参数需要放在Http Request Header中:

参数参数值参数说明是否必填
platformactivityPlatform平台名称,固定为activityPlatform
sign见参数说明

签名信息。拼接字符串规则:

String str = 秘钥|unionMsgPlatform ,然后对str进行md5加密:

String md5Encode = MD5Util.MD5Encode(str,"UTF-8"),

最终String sign = md5Encode + ”|” + System.currentTimeMillis()。

sign即为最终传递的签名信息

timestampSystem.currentTimeMillis() 

1.2 所有接口公共返回

名称 类型 说明 
successBoolean是否处理成功,true成功,false失败
messageString响应结果消息,如“操作成功”,“操作失败”
msgCodeString响应码
valueObject数据对象

备注:以下接口返回只说明数据对象value部分,数据均以json标准格式传输

msgCode=0,message=‘‘操作成功’’

用户未登陆

msgCode=2,message=‘‘用户未登录’’

以下为分页标准入参数据项:

名称 类型 说明 
pageNumInteger当前页
pageSizeInteger每页显示的总条数
paramobject分页查询筛选参数对象

以下为分页标准返回数据项:

名称 类型 说明 
pageNoInteger当前页
pageSizeInteger每页显示的总条数
totalRowsInteger总条数
isMoreInteger是否有下一页
totalPageInteger总页数
listList分页结果数据列表

1.3 微信相关配置

微信需进行公众号IP白名单,JS安全域名和网页授权回调域名配置

2. 接口分类

2.1 基础功能API(外部客户提供)

2.1.1 otp 登录发送短信验证码

接口地址:account/sendSmsCode

请求方式:GET

入参:

名称 类型 说明 是否必填
platformStringios/android
phoneString手机号,必填
parentIdString平台主账号
channelString0:h5;1:公众号;2:小程序;3:app

请求示例

https://uri.domain.com/account/sendSmsCode?platform=ios&parentId=xxxsshssdfhksg&phone=137612365283&channel=2

 返回:返回公共参数即可

备注:最好1min之内只允许发送一条短信,否则提示相关错误消息

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": null

}

2.1.2 otp 登录或注册

接口地址:account/registerAndLogin

请求方式:POST

入参:

名称 类型 说明 是否必填
platformStringios/android
phoneString手机号,必填
smsCodeString验证码
bizOriginString链接投放渠道编码
channelString0:h5;1:公众号;2:小程序;3:app
sourceString注册用户来源,如可以使用 activityCode
openIdString微信openId,可用于账户与微信绑定
parentIdString平台主账号
extraInfoString扩展信息

请求示例

{

    "platform": "ios",

    "phone": "13712673248",

    "smsCode": "124553",

    "bizOrigin": "toutiao",

    "channel": "2",

    "source": "turn123",

    "openId": "sadfdsfdgfjhgkjhk",

    "parentId": "124335676643464",

    "extraInfo": null

}


返回

名称 类型 说明 
accessKeyString该用户的加密登录凭证
registerboolean该用户是否第一次注册平台账户
accountIdString用户账户Id

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "accountId": "aaa0213",

        "accessKey": "13245674ddddddadssfgfhgjh",

        "register": true

    }

}

2.1.3 用户账户信息获取

接口地址:account/getUserInfo

请求方式:Get

入参:

名称 类型 说明 是否必填
platformStringios/android
accessKeyString该用户的加密登录凭证,header传入
parentIdString平台主账号

请求示例

https://uri.domain.com/account/getUserInfo?platform=ios&accessKey=aaaaaaaaaaxxxxvbvbbb&parentId=xxxsshssdfhksg

返回,如果accessKey失效或错误,返回用户未登录错误码和错误消息

名称 类型 说明 
accountIdString用户账户唯一标识
 phone String 用户手机号
 nickName String 昵称,以微信优先
headImgString头像,以微信优先

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "accountId": "aaa0213",

        "phone": "13245674",

        "nickName": "jack",

        "headImg": "https://sss.domain.com/a.jpg"

    }

}

2.1.4 微信API的token获取

接口地址:account/getWechatToken

请求方式:Get

入参:

名称 类型 说明 是否必填
appIdString微信公众号的APPID
parentIdString平台主账号

请求示例

https://uri.domain.com/account/getWechatToken?appId=sdsfdjgjkdfjljl&parentId=xxxsshssdfhksg


返回,

名称 类型 说明 
tokenString微信API的token
expireTimeString多少毫秒后失效(可选)

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "token": "hjkdshkhfkfjskds1132j66kjnsdfjh6",

        "expireTime": "7200"

    }

}

2.1.5微信js签名的ticket获取(外部客户提供)

接口地址:account/getWechatTicket

请求方式:Get

入参:

名称 类型 说明 是否必填
appIdString微信公众号的APPID
parentIdString平台主账号

请求示例

https://uri.domain.com/account/getWechatTicket?appId=sdsfdjgjkdfjljl&parentId=xxxsshssdfhksg


返回,

名称 类型 说明 
ticketString微信JS签名的ticket

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "ticket": "hjkdshkhfkfjskds1132j66kjnsdfjh6zcdsgfdcjhgkjfsd"

    }

}

 

2.1.6 微信公众号授权获取,

    授权回调在X-Man活动工场,用在客户无授权开发的情况下,该方案需要客户在公众号中配置活动侧授权回调域名。

接口地址:account/getOauth2Token

请求方式:Get

入参:

名称 类型 说明 是否必填
appIdString微信公众号的APPID
codeString获取的微信授权code
parentIdString平台主账号

请求示例

http://uri.domain.com/account/getWechatTicket?appId=sdsfdjgjkdfjljl&parentId=xxxsshssdfhksg&code=huudasjdsf


返回,

名称 类型 说明 
accessTokenString微信网页授权的token
openIdString用户在当前公众号下的openId

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "accessToken": "hjkdshkhfkfjskjdsshjgfsdfdcjhgkjfsd",

        "openId": "hjkdshkhfksdfdcjhgkjfsd"

    }

}

 

2.1.7 微信公众号授权获取

    授权回调在客户方,用在客户已授权开发的情况下该授权API直接提供外网域名,并且无需进行接口验签。

接口地址:account/getOauth2Authorize

请求方式:Get

入参:

名称 类型 说明 是否必填
appIdString微信公众号的APPID
scopeString微信授权方式(snsapi_base静默授权,snsapi_userinfo手动授权)
redirectUrlString授权完全后回调授权结果的url
parentIdString平台主账号

请求示例

https://uri.domain.com/account/getWechatTicket?appId=sdsfdjgjkdfjljl&parentId=xxxsshssdfhksg&scope=snsapi_userinfo&redirectUrl=http%253a%252f%252ftool.chinaz.com%252ftools%252furlencode.aspx


返回,

名称 类型 说明 
openIdString用户在当前公众号下的openId
nickName String 微信昵称
headImgString微信头像

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "openId": "cxvcxbvcnzcvxdfc",

        "nickName": "太乙真人",

        "headImg": "https://sdffdsjjhdskkdfhhjdsfhjhgd.png"

    }

}

 

2.1.8 关注微信公众号查询

    适用于客户要查询非本活动关联的公众号。

接口地址:account/getSubscribeByUnionid

请求方式:Get

入参:

名称 类型 说明 是否必填
appIdString要查询的微信公众号的APPID
openIdString微信用户对应活动关联公众号的唯一标识
parentIdString平台主账号

请求示例

https://uri.domain.com/account/getWechatTicket?appId=sdsfdjgjkdfjljl&parentId=xxxsshssdfhksg&openId=hfhsdshfshgkhdsahiyihh

 

返回,

名称 类型 说明 
subscribeBoolean是否关注

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "subscribe": true

    }

}

 

2.1.9 分页查询奖品列表queryPrizeList

请求方式:POST

入参:

名称 类型 说明 是否必填
prizeNameString奖品名称,非必填,用于查询搜索
parentIdString平台主账号

请求示例

{

    "pageNum": 1,

    "pageSize": "20",

    "param": {

        "prizeName": "京东E卡20元",

        "parentId": "jhgfsd73q834rr"

    }

}

 

返回为List分页形式,每项如下

名称 类型 说明 
prizeNameString奖品名称
prizeImageUrlString奖品图片
prizeStockString奖品可用库存
prizeCodeString奖品编码

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "pageNo": 1,

        "pageSize": "20",

        "totalRows": "100",

        "isMore": "1",

        "totalPage": "5",

        "list": [

            {

                "prizeName": "京东E卡20元",

                "prizeImageUrl": "https://dasddshfssf.png",

                "prizeStock": "100",

                "prizeCode": "wxc8298"

            },

            {

                "prizeName": "京东E卡30元",

                "prizeImageUrl": "https://dasddshfssf.png",

                "prizeStock": "1000",

                "prizeCode": "wxc8223"

            }

        ]

    }

}

 

2.1.10 奖品库存查询queryDmPrizeStock

请求方式:GET

入参:

名称 类型 说明 是否必填
prizeCodeString奖品编码
parentIdString平台主账号

请求示例

https://uri.domain.com/queryDmPrizeStock?prizeCode=sdsfdjgjkdfjljl&parentId=xxxsshssdfhksg


返回如下:

名称 类型 说明 
resultString库存数量

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "result": "100"

        ]

    }

}

 

2.1.11 发奖release

请求方式:POST

入参:

名称 类型 说明 是否必填
accountIdString用户账户唯一标识
phone String 用户手机号,与accountId二者有其一
purchaseCodeString奖品编码
 releaseNum Integer 发放数量
 uuid String 幂等值
parentIdString平台主账号

同步发奖直接返回奖品发放结果,异步发奖需要实现第12个API,发奖结果查询

请求示例

{

    "accountId": "35446we3",

    "phone": "13761328163",

    "purchaseCode": "WQsdfr3",

    "releaseNum": 1,

    "uuid": "gvcfbvnhjsdfufdskshh73465gffdh",

    "parentId": "fdgfdg1232ee"

}

返回为公共返回

以下为返回数据项

名称 类型 说明 
resultString发奖结果:SUCCESS、订单提交成功;FAIL、订单提交失败
resultMsgString发奖结果消息

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "result": "SUCCESS",

        "resultMsg":"发奖成功"

        ]

    }

}

 

2.1.12 发奖结果查询

请求方式:GET

入参:

名称 类型 说明 是否必填
accountIdString用户账户唯一标识
phone String 用户手机号,与accountId二者有其一
uuid String 幂等值
parentIdString平台主账号

请求示例

https://uri.domain.com/queryDmPrizeStock?accountId=sdsfdjd23&phone=1376128362&uuid=bfjdgfgdshjg3478&parentId=xxxsshssdfhksg

以下为返回数据项

名称 类型 说明 
resultString发奖结果:SUCCESS、发奖成功;FAIL、发奖失败;PROCESS、处理中
resultMsgString发奖结果消息

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "result": "SUCCESS",

        "resultMsg":"发奖成功"

        ]

    }

}

 

2.2 活动工场开放API(请通过科技云开放网关接入)

科技云开放网关接入指南

2.2.1 otp 登录增加抽奖机会

接口地址:xman-activity/addChance

请求方式:POST

入参:

名称 类型 说明 是否必填
openId String用户微信openId
accountIdString用户账户唯一标识
phone String 用户手机号,与accountId二者有其一
activityCodeString活动code

请求示例

{

    "accountId": "35446we3",

    "openId": "vxcjkjjkhxcfkjkjxcj,bkfjhfsda783qx",

    "phone": "16372365427",

    "releaseNum": 1,

    "activityCode": "turn123"

}

返回:返回公共参数

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": null

}

 

2.2.2 otp 登录查询活动账户信息(标准分页)

接口地址:xman-activity/getActivityAccountList

请求方式:POST

入参:

名称 类型 说明 是否必填
activityCodeString活动code

请求示例

{

    "pageNum": 1,

    "pageSize": "20",

    "param": {

        "activityCode": "register123"

    }

}


返回列表数据项:

名称 类型 说明 
openIdString用户openId
unionIdString用户unionId
channelString注册渠道0:h5;1公众号;2小程序
accountIdString账户唯一标识
phoneString手机号
nickNameString昵称,客户方需要base64解码
headImgString用户微信头像
shareCodeString用户分享码
recommendCodeString用户推荐码
sourceString用户注册来源,一般为activityCode
bizOriginString用户自定义投放来源
extraInfoString账户扩展信息

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "pageNo": 1,

        "pageSize": "20",

        "totalRows": "100",

        "isMore": "1",

        "totalPage": "5",

        "list": [

            {

                "openId": "gddhsfjhkdkhdfkghjdfgj",

                "unionId": "jsdghskdfjkdfk",

                "channel": "4",

                "accountId": "gdgjshfi23",

                "phone": "13761238734",

                "nickName": "大雨",

                "headImg": "https://dsfdsdfd.33df.com/ssdfdsf.png",

                "shareCode": "dfsgfdx",

                "recommendCode": "fdsfsd",

                "source": "trun12",

                "bizOrigin": "weixin",

                "extraInfo": "value"

            },

            {

                "openId": "gddhsfjhkdkhdfkghjdfgj",

                "unionId": "jsdghskdfjkdfk",

                "channel": "4",

                "accountId": "gdgjshfi23",

                "phone": "13761238734",

                "nickName": "大雨",

                "headImg": "https://dsfdsdfd.33df.com/ssdfdsf.png",

                "shareCode": "dfsgfdx",

                "recommendCode": "fdsfsd",

                "source": "trun12",

                "bizOrigin": "weixin",

                "extraInfo": "value"

            }

        ]

    }

}

 

2.2.3 查询注册记录(标准分页)

 

接口地址:xman-activity/getRegisterRecord

请求方式:POST

入参:

名称 类型 说明 是否必填
activityCodeString活动code

请求示例

{

    "pageNum": 1,

    "pageSize": "20",

    "param": {

        "activityCode": "register123"

    }

}


返回列表数据项:

名称 类型 说明 
activityCodeString活动code
phoneString手机号
registerDataJsonObject注册提交的数据
isRegisterString是否新用户注册
gmtCreatedDate创建时间

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": {

        "pageNo": 1,

        "pageSize": "20",

        "totalRows": "100",

        "isMore": "1",

        "totalPage": "5",

        "list": [

            {

                "activityCode": "gddhsfjhkdkhdfkghjdfgj",

                "phone": "jsdghskdfjkdfk",

                "registerData": "4",

                "isRegister": true,

                "gmtCreated": "value"

            },

            {

                "activityCode": "gddhsfjhkdkhdfkghjdfgj",

                "phone": "jsdghskdfjkdfk",

                "registerData": "4",

                "isRegister": true,

                "gmtCreated": "value"

            }

        ]

    }

}

 

2.3 业务方业务结果查询API(需客户方提供)

 

2.3.1 业务列表查询

 

接口地址:xman-activity/getBusinessList

请求方式:GET

入参:

名称 类型 说明 是否必填
parentIdString平台主账号

请求示例

https://uri.domain.com/xman-activity/getBusinessList?parentId=xxxsshssdfhksg


返回列表数据项:

名称 类型 说明 
businessCodeString业务code
businessNameString业务名称
gmtModifiedDate更新时间

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": [

        {

            "businessCode": "dsfsgsfg",

            "businessName": "达标次数",

            "gmtModified": 1598425676217

        },

        {

            "businessCode": "dsfsgdedzsfg",

            "businessName": "注册次数",

            "gmtModified": 1598425676217

        }

    ]

}

 

2.3.2 业务结果查询

接口地址:xman-activity/getBusinessResult

请求方式:POST

入参:

名称 类型 说明 是否必填
parentIdString平台主账号
startTimeDate活动开始时间,时间戳
endTimeDate活动结束时间,时间戳
businessCodeListList业务code数据列表
accountIdString用户账户唯一标识,如果不为空以此为条件,如果为空则以phone为条件
phone String 用户手机号,如果accountId不为空,phone不一定有值,accountId为空,则phone一定有值

businessCodeList为列表数据,每项如下:

名称 类型 说明 是否必填
businessCodeString业务code

请求示例

{

    "parentId": "sdfdgfghjhueq366jn",

    "startTime": 1598425676217,

    "endTime": 1598425676217,

    "accountId": "dsfdfbf53",

    "phone": "13652367236",

    "businessCodeList": [

        {

            "businessCode": "hdshjdf"

        },

        {

            "businessCode": "hdshjdf"

        }

    ]

}

返回数据为List,每项如下:

名称 类型 说明 
businessNumInteger业务达标次数
businessCodeString业务code

响应示例

{

    "success": true,

    "msgCode": 0,

    "message": "操作成功",

    "value": [

        {

            "businessCode": "dsfsgsfg",

            "businessNum": 3

        },

        {

            "businessCode": "dsfsgdedzsfg",

            "businessNum": 2

        }

    ]

}