# 3、API对接

# 对接技术须知 须知 token

对接注意:

1、获取任务列表接口无需分页处理,limit默认传递10即可

2、以下所有的接口发送请求都需要在header里面携带token,Content-Type: application/json;charset=utf-8

# 对接流程:

  • 第一步:在进入列表页,首先请求getLuaCInfo接口,拿到content加密,详见【请求content】;

  • 第二步:自定义列表页,获取安卓的base参数,base获取成功请求列表接口【获取列表】,base示例【base示例】;

  • 第三步: 用户点击列表中某一个任务,进行判断

    如果taskType为0并且不在进行中的任务,需要判断本地是否已经安装此应用; 如果本地有安装请提示用户卸载后重新做任务,如果没有安装,需要判断该任务是否在进行中并且是深度任务; 如果是在进行中的且深度的任务,需要判断taskDate和今天的日期是否相等;

    如果相等,则不请求接口,需要带上taskId,taskType直接进入详情页

    如果taskDate和今天的日期不相等,则提示用户请按指定日期完成任务。

    如果是不在进行中的任务,则请求抢任务接口【[抢任务](./app_task_list.html#第二步:抢任务进详情)】,接口状态返回200或者当前的任务running为true是在进行中的状态,就不需要再抢任务,传递taskId,taskType直接进入详情页【[详情页](./app_task_list.html#进入h5详情)】, 当用户有其他的任务在进行中,抢新任务的时候,接口会返回code为102,需要弹窗提示用户是否放弃进行中的任务,抢新的任务, 如果点击放弃,则请求放弃任务的接口【[任务放弃](./app_task_list.html#任务放弃接口)】,放弃成功后再传递当前点击任务的taskId,taskType请求抢任务的接口【[抢任务](./app_task_list.html#第二步:抢任务进详情)】,抢成功后进入详情页,如果点击继续任务,则跳转到进行中的任务

注意:taskType为0的深度任务可以有多个任务在进行中的状态,如果taskType为0的深度任务在进行中,抢别的任务不用弹窗放弃在进行中的taskType为0的任务

**第四步:**开发应用赚回调接口,用户提交截图审核或内容审核,平台审核成功后 ,会通过媒体方回调接口通知给用户发放相应的奖励。详见:【应用赚任务领奖通知】。

# 基础:请求token

# 请求链接

url地址:https://api.aibianxian.net/igame/api/v1.0/cplApi/access

# 请求方式

post

# 请求参数

字段名 变量名 必填 类型 示例值 描述
应用id app_key String(32) 142792745 平台的应用id
设备 device String(32) ios ios,android
设备号 device_info String(32) 013467007045764 安卓传imei,ios传参idfa值
用户标识 target_id String(128) 13457 接入平台的用户唯一标示(接入平台用户id)

# 返回结果

字段名 变量名 必填 类型 示例值 描述
返回状态码 code String(16) 200 200/300 此字段是通信标识,非交易标识
返回信息 message String(128) 请求成功 当code不为200时返回信息为错误原因 ,例如 签名失败 参数格式校验错误
返回数据 data String(256) dsa3odhshbey4clfmdj1537 当code为200时返回的信息,为将要跳转的地址

# 错误码

名称 原因 解决方案
301 参数格式有误或者未按规则上传 按要求填写参数,请确认参数问题

# 基础:请求content

# 接口

https://api.aibianxian.net/igame/h5/v1.51/cpa/getLuaCInfo

# 请求方式

get

# 返回值

{
    "code":200,
    "data":{
        content:"1321221"
    }
}

获取到content后,调用安卓SDK方法

window.aibianxian.ibx_ObtainBaseInfo(content)

# 基础:获取base

H5自定义方法供原生安卓回调

window['baseInfo'] = (value) => {
        let baseInfoObj = JSON.parse(atob(value));
};

baseInfoObj为下述base,oaid为baseInfoObj.oaid

# 第一步:获取应用赚列表

# 接口

https://api.aibianxian.net/igame/h5/v1.51/cpa/getList

# 请求方式

post

# 请求参数

// 不分页,limit传递 10 即可
{
    params: {
        page, //Number类型
        limit //Number类型
    },
    base: base, //获取到的安卓base,base是一个Object类型
    oaid: oaid,  //base对象里面的oaid
    ip: ip  //用户的ip
} 

# 返回值

点击查看接口返回值
{
	"code": "200",
	"msg":"成功",
	"totalCount":40,
	"info":0,
	"resultCount":40,
	"isShow":null,
	"data": [
		{
			"orderId" : "785499078317346816",  //订单id
			"taskType" : 0, // 0:ASO任务, 1:注册任务 ,8:搜索注册任务, 9:开放任务, 11:小程序任务, 17:CPA任务
			"appName" : "遇见",   //app名字
			"appPackageName" : "net.iaround",  //包名
			"appMarketDownloadUrl" : "https://imoneyandroid.oss-cn-beijing.aliyuncs.com/appMarket/com.huawei.appmarket.apk",
			"appIcon" : "https://imoneyandroid.oss-cn-beijing.aliyuncs.com/appIcon/2020/12/7/appIcon_996a6c0f-4db3-4ca4-a576-1cdff9528dbc.png",  // icon
			"price" : 0.35,  //价格
			"taskWay" : 1, 
			"isDeepTask" : 1, //是否是深度任务,1是深度
			"deepTaskInfo" : [
				{
					"dayNUm" : 0,  
					"income" : 0.4,
					"playTime" : 4,
					"taskState" : 0
				},
				{
					"dayNUm" : 1, 
					"income" : 0.4,
					"playTime" : 4,
					"taskState" : 0
				}
			],
			"appMarket" : "华为应用商店",
			"appMarketPackageName" : "com.huawei.appmarket",
			"keywords" : "遇见", //关键词
			"keywordsRank" : 1,  //关键词排名
			"remainNum" : 9,   //剩余多少份任务
			"tag" : "",  
			"showRank" : 90,
			"currentTime" : 1607501267086,
			"running" : 0,   //是否正在进行中,1是0否
			"unit": "元"  //显示单位
		}
	]
}

# 第二步:抢任务进详情

# 接口

https://api.aibianxian.net/igame/h5/v1.51/cpa/robTask

# 请求方式

post

# 请求参数

{
   params: {
      orderId, //任务的orderId
      taskType //任务的taskType
   },
   base: base, //获取到的安卓base,base是一个Object类型
   oaid: oaid,  //base对象里面的oaid
   ip: ip  //用户的ip     
}

# 返回值

{
	"code": "200",
	"data": {
		"taskId" : 3131312313,  //抢到的任务ID,进详情需要传递
		"taskType" : 0 ,     //任务类型,进详情需要传递
		"msg" : "",    //给用户的提示信息
	}, 
	"msg": "成功"   //系统出错提示信息
}

# 进入H5详情

https://api.aibianxian.net/igameh5/#/cpadetail?nextClose=1&taskId=xxx&taskType=xxx&token=xxx

  • taskId:抢任务成功时,接口返回的id
  • taskType:任务类型
  • token:用户token

# 任务放弃接口

# 接口

https://api.aibianxian.net/igame/h5/v1.51/cpa/giveUpTask

# 请求方式

post

# 请求参数

{
  params: {
     taskId: taskId, //当前放弃任务的taskId
     taskType: taskType, //当前放弃任务的taskType
  },
   base: base,
   oaid: oaid,  //base对象里面的oaid
   ip: ip  //用户的ip     
}

# 返回值

{
	"code": "200",
	"data": {
		"taskId" : 3131312313,  //抢到的任务ID
		"taskType" : 0 ,     //任务类型
		"msg" : "",    //给用户的提示信息
	}, 
	"msg": "成功"   //系统出错提示信息
}

# 任务记录

说明:任务审核中,审核未通过接口(审核中,审核未通过用的是同一个接口),已发奖接口详见【已发奖任务记录

# 接口

https://api.aibianxian.net/igame/h5/v1.51/cpa/getTaskAuditDetail

# 请求方式

post

# 请求参数

// 分页
{
   params: {
      page,
      limit
   }
}

根据返回值的taskState状态判断是审核中的还是审核未通过的,1 正在审核 2 审核未通过

# 返回值

{
  "code": 0,
  "data": {
    [
        "appName":" 应用名称",
        "appIcon": "应用图标",
        "taskState": 1, // 任务状态 1 正在审核 2 审核失败 
        "income": "任务收益金额",
        "tag": "任务标签",
        "createDate": "创建时间",
        "auditErrorMsg":"审核失败原因"
    ]
  },
  "info": 0,
  "isShow": true,
  "msg": "string",
  "resultCount": 0,
  "totalCount": 0
}

# 已发奖任务记录

# 接口

https://api.aibianxian.net/igame/h5/v1.51/cpa/getMoneyChangeInfo

# 请求方式

post

# 请求参数

//分页
{
   params: {
      page,
      limit
   }
}

根据返回值的taskState状态判断是审核中的还是审核未通过的,1 正在审核 2 审核未通过

# 返回值

{
  "code": 0,
  "data": {
	 "userMoneyChangeDetails":[
         {
             "appIcon":"应用Icon地址",
             "appName":"应用名称",
             "date": "变动时间",
             "changeMoney": "变动的金额",
         }
     ]
  },
  "info": 0,
  "isShow": true,
  "msg": "string",
  "resultCount": 0,
  "totalCount": 0
}

# base示例(参考,请以实际获取为准)

点击base示例
{
	"appSign": "",
	"base": {
		"apBssid": "02:00:00:00:00:00",
		"apIP": "172.17.1.67",
		"apSsid": "<unknown ssid>",
		"appFountDuration": "15656",
		"appSign": "d5cd9270e3bcf878074df964a7dab03f",
		"batteryChargeStatus": "discharging",
		"batteryHealth": "good",
		"batteryPercentage": "100",
		"batteryPowerInformation": "-1",
		"batteryTechnology": "Li-poly",
		"batteryTemperature": "290",
		"batteryVoltage": "4366",
		"channelName": "default",
		"downloadSpeed": "5.6435547",
		"imei": "",
		"imei2": "",
		"isAdb": "1",
		"isFly": "0",
		"jpushID": "-1",
		"manuFacturer": "HUAWEI",
		"model": "ELE-AL00",
		"networkCountryIso": "cn",
		"phoneIp": "172.17.1.67",
		"phoneNetStats": "wifi",
		"proxy": false,
		"proxyPort": "-1",
		"sdkCode": "29",
		"sim2Stats": "-1",
		"simOperator": "",
		"simOperatorName": "",
		"simSerialNumber": "",
		"simStats": "1",
		"simcountryIso": "",
		"systemVersion": "10",
		"telephonyCell": "-1",
		"telephonyLac": "-1",
		"udid": "6bea52888edd1aaff5132fe910470926",
		"vpn": "false",
		"wlanMac": "02:00:00:00:00:00"
	},
	"oaid": "b96aced3-d57c-42a5-8a45-57f4383feb33",
	"params": {
		"page": "1",
		"limit": "10"
	}
}