Skip to content

PayTrigger 手机锁接口整理

本文按当前接入链路整理:查机型、预录入 IMEI、查状态、回调、还款解锁、移除锁、临时解锁。

1. 接入说明

1.1 环境地址

非印度正式环境:

text
https://paytrigger.transsion-os.com/PayTrigger

印度正式环境:

text
https://ind-paytrigger.transsion-os.com/PayTrigger

1.2 通用请求头

http
Content-Type: application/json; charset=UTF-8
sign: Base64(HMAC_SHA256(content))

1.3 签名规则

  1. 将请求 body 中非空参数按参数名 ASCII 升序排列。
  2. k1=v1&k2=v2 格式拼接签名明文。
  3. 使用 HmacSHA256,以 apiKey 作为 key 计算摘要。
  4. 将摘要转为大写 hex string。
  5. 对大写 hex string 做 Base64,放入请求头 sign

示例:

json
{
  "apiKey": "8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4",
  "imeiInfo": "[{\"expiration\":1662136801,\"imei\":\"359581820772412\",\"model\":\"infinix SMART 6\",\"ram\":\"2\",\"rom\":\"32\"}]",
  "preLockFlag": "false"
}

签名明文:

text
apiKey=8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4&imeiInfo=[{"expiration":1662136801,"imei":"359581820772412","model":"infinix SMART 6","ram":"2","rom":"32"}]&preLockFlag=false

注意:

  • imeiInfo 要传“字符串形式的数组”,不是直接传 JSON 数组。
  • true/false 建议统一使用固定格式,否则不同语言序列化后可能导致签名不一致。

2. 设备状态说明

设备生命周期:

text
Enrolled -> Registered -> Ready_to_active -> Active -> Removable

状态值:

含义
0unregistered,未注册
500pre_enroll / enrolled,预录入
1000registered,已注册
2000ready_to_activate,待激活
3000active,已激活
5000removable,可移除/已移除

锁定状态:

含义
1000locked,已锁定
2000unlock,未锁定

关键理解:

  • imei/input 只是预录入 IMEI,不代表手机已经锁机。
  • 真正激活和锁机依赖手机端已有 PayTrigger/设备锁组件联网同步。
  • 文档没有提供“让手机下载 APK”的接口。若设备没有内置/支持锁控组件,仅调用服务端接口不能让手机自动下载 APK 并锁机。

3. 查询机型

通过 IMEI 查询传音制造/出厂信息。建议在预录入前调用,用来确认该 IMEI 是否存在于传音制造数据中。

http
POST /api/partner/model/v1/get

入参

字段类型必填说明
apiKeyString商户 API Key
imeiString设备 IMEI
signHeader请求头签名

请求示例

json
{
  "apiKey": "siRBMLw6H2kCvN8uId5qlcmr1KGQ4WZ3",
  "imei": "355818617005570"
}

成功返回示例

json
{
  "code": 200,
  "message": "Success",
  "data": {
    "imei": "351997122657705",
    "brandName": "TECNO",
    "modelLabelName": "KL5",
    "modelMarketName": "TECNO SPARK 30C",
    "rom": 128,
    "ram": 4,
    "imei1": "351997122657705",
    "imei2": "351997129428365",
    "color": "MAGIC SKIN GREEN",
    "dpmActDate": "2024-08-24",
    "senderCountryCode": "PK",
    "senderCountryName": "Pakistan"
  }
}

常见失败返回

json
{
  "code": 40005,
  "message": "No matching manufacturing data",
  "data": null
}

含义:传音后台按该 IMEI 未找到匹配的制造/出厂数据。

常见原因:

  • IMEI 写错,或双卡手机需要换另一个 IMEI 查询。
  • 当前接口环境没有该设备制造数据,例如测试环境/正式环境不一致。
  • 该设备不是 PayTrigger 支持批次。
  • 当前商户未开通该机型/国家/版本权限。
  • 设备的 apkVersion / frameworkVersion 未加入运营白名单。

4. 预录入 IMEI

把单个或批量 IMEI 预录入 PayTrigger。预录入成功后,设备进入 Enrolled 链路。

http
POST /api/partner/lock/v1/imei/input

入参

字段类型必填说明
apiKeyString商户 API Key
imeiInfoString字符串形式的数组,最多 2000 个不重复 IMEI
preLockFlagBoolean/String激活后是否立即锁定
signHeader请求头签名

imeiInfo 内部字段:

字段类型必填说明
imeiString设备 IMEI
modelString机型,激活时会校验
ramString运行内存,不带单位
romString存储内存,不带单位
cycleTypeInteger还款周期:0 无,1000 Day,2000 Week,3000 Month
expirationLong条件必填到期时间戳。preLockFlag=false 时必填
orderNumString商户订单号
deeplinkString商户跳转链接
deeplinkPkgStringdeeplink 对应 App 包名
ruleNumInteger锁策略规则编号
nfcFlagBoolean手机是否支持 NFC,激活时会校验
planGaidStringplan gaid,激活时会校验
nextRepaymentTimeSwitchBoolean是否展示下次还款时间

preLockFlag 说明:

含义
true激活后立即下发预录入锁
false激活后不立即锁,到期后按锁策略上锁

请求示例

json
{
  "imeiInfo": "[{\"cycleType\":3000,\"expiration\":1621468800,\"imei\":\"555555512223\",\"model\":\"infinix CT6\",\"orderNum\":\"PT202207181233\",\"ram\":\"4\",\"rom\":\"256\",\"deeplink\":\"https://www.pay.url\",\"deeplinkPkg\":\"com.android.chrome\",\"nfcFlag\":true,\"ruleNum\":0,\"planGaid\":\"gew4536543\"}]",
  "preLockFlag": false,
  "apiKey": "9j4S7Ob0sT5h6DVwAez2cPxUKMqBvf8d"
}

成功返回示例

json
{
  "code": 200,
  "message": "Success",
  "data": []
}

部分失败返回示例

json
{
  "code": 50021,
  "message": "Some IMEI entry failed",
  "data": [
    {
      "imei": "123123123000431x",
      "message": "Expiration is null",
      "errCode": 50022
    },
    {
      "imei": "123123123000429",
      "message": "This IMEI has been enrolled or activated and cannot be enrolled again.",
      "errCode": 50015
    }
  ]
}

5. 取消预录入

设备未激活前,可取消 IMEI 预录入,释放 enroll 额度,并让手机不走分期锁机流程。

http
POST /api/partner/lock/v1/imei/cancel

入参

字段类型必填说明
apiKeyString商户 API Key
imeiInfoStringIMEI,多个用英文逗号分隔
signHeader请求头签名

请求示例

json
{
  "apiKey": "3w1mZa2pK79Wye0k5UfLCHPVbiodNv4F",
  "imeiInfo": "112233445566,4532546547777"
}

返回示例

json
{
  "code": 200,
  "message": "Success",
  "data": []
}

6. 查询设备锁状态

查询单个设备锁信息,是排查“是否激活、是否锁定、端侧是否联网”的核心接口。

http
POST /api/partner/lock/v1/findLockState

入参

字段类型必填说明
apiKeyString商户 API Key
deviceTagString条件必填设备标签,deviceTagimei 必传一个
imeiString条件必填设备 IMEI,deviceTagimei 必传一个
orderNumString商户订单号,可查询已移除设备
signHeader请求头签名

请求示例

json
{
  "deviceTag": "QYMDX4KN",
  "imei": "1587105425960",
  "orderNum": "D1587105425960",
  "apiKey": "8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4"
}

成功返回示例

json
{
  "code": 200,
  "data": {
    "lockState": 2000,
    "serverState": 2000,
    "orderNum": "11111111",
    "mobileStatus": 1000,
    "serverLockStatus": 1000,
    "activeTime": 1596698973,
    "lastConnectTime": 1596698973,
    "lockRuleNum": 0,
    "lockTypeSwitch": "[{\"lockFlag\":false,\"lockType\":\"WATERMARK_LOCK\"},{\"lockFlag\":false,\"lockType\":\"CALL_LOCK\"},{\"lockFlag\":false,\"lockType\":\"SMS_LOCK\"}]",
    "serverLockTypeSwitch": "[{\"lockFlag\":false,\"lockType\":\"WATERMARK_LOCK\"}]",
    "imei": "4326546576888",
    "frameworkVersion": "1.2.0.0",
    "apkVersion": "1.2.0.0",
    "serverAntiTheftFunction": true,
    "clientAntiTheftFunction": false,
    "model": "TECNO AC8",
    "partnersPkgState": "TYPE_ABNORMAL",
    "ram": 8,
    "rom": 256,
    "buildNumber": "BF6-SE668SABCDE-SGo-OP-230320V442",
    "antiCrackingVer": "P1"
  },
  "message": "Success"
}

关键返回字段

字段说明
lockState客户端实际生命周期状态
serverState服务端下发生命周期状态
mobileStatus客户端实际锁定状态,1000=locked2000=unlock
serverLockStatus服务端下发锁定状态
activeTime激活时间戳
lastConnectTime设备上次联网同步时间戳
lockTypeSwitch客户端执行成功的锁策略
serverLockTypeSwitch服务端生成/下发的锁策略
frameworkVersion设备锁控 framework 版本
apkVersion设备锁控 APK 版本
partnersPkgState商户 App 状态

partnersPkgState 枚举:

含义
TYPE_NORMAL正常
TYPE_ABNORMAL应用异常
TYPE_PKG_NULL未配置
TYPE_UNINSTALLED未安装

7. 通过 IMEI 查询 DeviceTag

通过 IMEI 查询设备 tag 及第三方订单号。

http
POST /api/partner/lock/v1/getDevice

入参

字段类型必填说明
apiKeyString商户 API Key
imeiString设备 IMEI
signHeader请求头签名

请求示例

json
{
  "apiKey": "3w1mZa2pK79Wye0k5UfLCHPVbiodNv4F",
  "imei": "112233445566"
}

返回示例

json
{
  "code": 200,
  "message": "Success",
  "data": {
    "deviceTag": "6EABQDC8",
    "lockState": 2000,
    "serverState": 2000,
    "orderNum": "1642052225550"
  }
}

8. 设备状态变化回调

当设备端实际已激活、更新、锁定、解锁、移除时,PayTrigger 会通知合作方回调地址。

http
POST https://xxx/callbackUrl

回调入参

字段类型必填说明
productModelString设备型号
deviceTagString设备 tag
imeiString设备 IMEI
orderNumString商户订单号
expirationLong过期时间戳
activeTimeLong激活时间戳
stateInteger客户端当前生命周期状态
mobileStatusInteger客户端锁定状态
serverStateInteger服务端当前生命周期状态
clientRemoveTimeLong客户端实际移除时间戳
serverRemoveTimeLong服务端下发移除时间戳
notifyTypeInteger通知类型
tipString强限制超限提示
signHeader请求头签名

notifyType

含义
1000客户端激活状态回调
2000客户端移除状态回调
4000设备锁指令因强限制超限回调

回调示例

json
{
  "productModel": "TECNO",
  "mobileStatus": 1000,
  "serverState": 1000,
  "orderNum": "1111111",
  "activeTime": 1572969600,
  "deviceTag": "IST3PDUZ",
  "imei": "111111111111",
  "expiration": 1572969600,
  "state": 1000,
  "clientRemoveTime": 1572969600,
  "serverRemoveTime": 1572969600,
  "notifyType": 1000
}

强限制超限回调示例:

json
{
  "notifyType": 4000,
  "deviceTag": "3WGHPKCJ",
  "orderNum": "LOAN1000074720201203071002",
  "imei": "",
  "tip": "The strong restriction order issued by the equipment did not take effect due to control."
}

合作方回调响应

合作方必须返回以下格式,否则 PayTrigger 认为处理失败,并可能重试通知。

json
{
  "code": 200,
  "message": "Success"
}

9. 还款状态变更/实际解锁

客户每次还款后调用,用于解锁、延长到期时间,并产生解锁指令。

http
POST /api/partner/lock/v1/updateRepayInfo

入参

字段类型必填说明
deviceTagString条件必填设备标签,deviceTagimei 必传一个
imeiString条件必填设备 IMEI,deviceTagimei 必传一个
repayedAmtBigDecimal已还金额,两位小数
totalAmtBigDecimal总金额,两位小数
nextRepayTimeLong下期还款时间戳,需大于当前时间
nextRepayAmtBigDecimal下期还款金额,两位小数
currencyTypeString货币符号,例如 $
currentTermInteger当前期数,1-1000
totalTermInteger总期数,1-1000
relatedMerchantString关联商户 apiKey
descriptionString备注
phoneNumString客户手机号
orderNumString商户订单号
deeplinkString商户 deeplink
deeplinkPkgStringdeeplink 对应包名
ruleNumInteger锁策略规则,0-5,不传则不更新
signHeader请求头签名

请求示例

json
{
  "repayedAmt": 1000,
  "totalAmt": 3000,
  "deviceTag": "YJ72Q18E",
  "nextRepayTime": 1573371983,
  "nextRepayAmt": 1000,
  "currencyType": "$",
  "currentTerm": 1,
  "totalTerm": 3,
  "relatedMerchant": "8Zlibe3YNpQSEcgjLn0TJVXUCy5IOmBM",
  "description": "repay record update",
  "orderNum": "11111111",
  "phoneNum": "1388188888",
  "imei": "1587105425960",
  "deeplink": "halacredit://credit/order?id=123664",
  "deeplinkPkg": "com.hala.fintech.coihub",
  "ruleNum": 1
}

返回示例

json
{
  "code": 200,
  "message": "Success"
}

10. 移除设备锁

客户全部还款完成后,调用该接口移除设备锁,解除设备限制。

http
POST /api/partner/lock/v1/removeLock

入参

字段类型必填说明
apiKeyString商户 API Key
deviceTagString条件必填设备标签,deviceTagimei 必传一个
imeiString条件必填设备 IMEI,deviceTagimei 必传一个
signHeader请求头签名

请求示例

json
{
  "deviceTag": "QYMDX4KN",
  "imei": "111111111111",
  "apiKey": "8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4"
}

返回示例

json
{
  "code": 200,
  "message": "Success"
}

11. 临时解除设备锁

用户已被锁机时,临时允许设备解锁一段时间。

http
POST /api/partner/unlock/v1/tempUnlock

入参

字段类型必填说明
apiKeyString商户 API Key
deviceTagString条件必填设备标签,deviceTagimei 必传一个
imeiString条件必填设备 IMEI,deviceTagimei 必传一个
tempLockTimeInteger临时解锁时间。默认 24 小时
timeUnitString时间单位:HOURSMINUTES。默认 HOURS
signHeader请求头签名

时间范围:

单位范围
MINUTES1-1440
HOURS1-720

请求示例

json
{
  "deviceTag": "QYMDX4KN",
  "imei": "1587105425960",
  "apiKey": "8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4",
  "tempLockTime": 72,
  "timeUnit": "HOURS"
}

返回示例

json
{
  "code": 200,
  "message": "Success"
}

12. 单个设备锁策略配置

针对不同用户等级设置不同锁策略和提示文案。

http
POST /api/partner/lockRule/v1/setLockRule

入参

字段类型必填说明
apiKeyString商户 API Key
deviceTagString条件必填设备标签,deviceTagimei 必传一个
imeiString条件必填设备 IMEI,deviceTagimei 必传一个
ruleNumInteger锁策略编号,0-5,默认 0
deviceTipsString锁主界面/屏幕锁展示提示,400 字符内
deeplinkString商户 deeplink
deeplinkPkgStringdeeplink 对应包名。与 deeplink 要么都传,要么都不传
deviceTitleString自定义锁屏标题
callInPhoneNumString允许呼入电话列表
CallOutPhoneNumString允许呼出电话列表
signHeader请求头签名

请求示例

json
{
  "deviceTag": "FLTZWA7V",
  "imei": "1587105425960",
  "apiKey": "UIFqXasP68LhblnR41iz92ADKcO73mGQ",
  "ruleNum": 0,
  "deviceTips": "please repay as soon as possible",
  "deeplink": "app://repay",
  "deeplinkPkg": "com.example.app",
  "deviceTitle": "Notice",
  "callInPhoneNum": "110,120",
  "CallOutPhoneNum": "110,120"
}

返回示例

json
{
  "code": 200,
  "message": "Success"
}

13. PIN 离线解锁

用户逾期锁机后,可通过离线方式从金融方获取离线解锁 PIN,在 PayTrigger 界面输入后解锁。

http
POST /api/partner/unlock/v1/verifyCode

入参

字段类型必填说明
apiKeyString商户 API Key
imeiString设备 IMEI
deviceTagString设备 tag
captchaString4 位随机数
signHeader请求头签名

请求示例

json
{
  "apiKey": "3w1mZa2pK79Wye0k5UfLCHPVbiodNv4F",
  "imei": "112233445566",
  "captcha": "1234",
  "deviceTag": "A23DFTP8"
}

返回示例

json
{
  "code": 200,
  "message": "Success",
  "data": {
    "verifyCode": "123456789"
  }
}

14. 推荐接入流程

14.1 放款/售机前

  1. 调用 model/v1/get 查询 IMEI 制造数据。
  2. 若返回 40005 No matching manufacturing data,先找传音确认设备、环境、白名单,不建议继续预录入。
  3. 调用 imei/input 预录入设备。
  4. 保存业务订单号、IMEI、后续回调中的 deviceTag

14.2 手机激活后

  1. 接收传音回调,关注 notifyType=1000
  2. 调用 findLockState 复核:
    • serverState
    • lockState
    • mobileStatus
    • lastConnectTime
    • apkVersion
    • frameworkVersion

14.3 还款后

  1. 调用 updateRepayInfo 更新还款状态和下期到期时间。
  2. 查询 findLockState 确认锁状态是否同步。

14.4 逾期后

  1. 到期后设备端按锁策略执行锁定。
  2. 通过 findLockState 查询 mobileStatus=1000 是否已锁。
  3. 如需临时解锁,调用 tempUnlock

14.5 全部还清后

  1. 调用 removeLock
  2. 等待回调或调用 findLockState 确认状态进入 Removable

15. 当前问题判断

当前调用:

json
{
  "apiKey": "siRBMLw6H2kCvN8uId5qlcmr1KGQ4WZ3",
  "imei": "355818617005570"
}

返回:

json
{
  "code": 40005,
  "message": "No matching manufacturing data",
  "data": null
}

判断:

  • 请求字段符合文档要求。
  • 问题大概率不是入参格式,而是传音后台未找到该 IMEI 的制造数据。
  • 需要传音确认该 IMEI 是否存在于当前环境、是否属于 PayTrigger 支持批次、是否需要换 IMEI1 查询、商户是否开通该机型/国家/版本权限。

附录:全量接口补充

本附录补齐 PDF 中未在前文详细展开的接口,确保 1-28 个接口都能在本文档中查到。前文已经详细展开的接口包括:预录入 IMEI、取消预录入、查询机型、查询锁状态、DeviceTag 查询、状态回调、还款解锁、移除锁、临时解锁、单设备锁策略、PIN 离线解锁。

A1. 合作方推送消息

http
POST /api/partner/push/v1/sendPushInfo

用途:针对单个设备发送定制化推送消息、弹窗消息、模拟来电或 Promise Pay 信息。

入参:

字段类型必填说明
apiKeyString商户 API Key
deviceTagString条件必填设备标签,deviceTagimei 必传一个
imeiString条件必填设备 IMEI,deviceTagimei 必传一个
contentString推送内容,500 字符内;pushType=3 时传录音文件编号 0-3
titleString推送标题,80 字符内;pushType=3 时传模拟来电显示号码
pushTypeInteger1 弹窗,2 推送,3 模拟来电,4 Promise Pay
deeplinkString点击消息后的 deeplink,仅支持 pushType=1/2
deeplinkPkgString条件必填deeplink 对应包名;传 deeplink 时必填
h5linkStringH5 链接,仅支持 pushType=1/2
imgUrlStringpushType=1 时弹窗展示图片
signHeader请求头签名

请求示例:

json
{
  "deviceTag": "QYMDX4KN",
  "imei": "",
  "apiKey": "8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4",
  "content": "12434",
  "title": "12223",
  "pushType": 1,
  "h5link": "www.baidu.com",
  "imgUrl": "https://xxxx.jpg",
  "deeplink": "halacredit://credit/order?id=123664",
  "deeplinkPkg": "com.hala.fintech.coihub"
}

返回示例:

json
{
  "code": 200,
  "message": "Success"
}

A2. 合作方批量推送消息

http
POST /api/partner/push/v1/sendBatchPushInfo

用途:针对多个设备批量发送推送、弹窗、模拟来电或 Promise Pay 信息。

入参:

字段类型必填说明
apiKeyString商户 API Key
pushTypeInteger消息类型,同单设备推送
pushInfoString字符串形式的数组;每次最多 100 个设备
signHeader请求头签名

请求示例:

json
{
  "pushInfo": "[{\"content\":\"12434\",\"deviceTag\":\"QYMDX4KN\",\"imei\":\"1111\",\"title\":\"12223\",\"h5link\":\"www.baidu.com\",\"imgUrl\":\"https://xxxx.jpg\",\"deeplink\":\"halacredit://credit/order?id=123664\",\"deeplinkPkg\":\"com.hala.fintech.coihub\"}]",
  "apiKey": "8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4",
  "pushType": 1
}

返回示例:

json
{
  "code": 200,
  "data": [
    {
      "code": 30020,
      "deviceTag": "QYMDX4KN",
      "imei": "11111",
      "message": "ClientId is null"
    }
  ],
  "message": "Success"
}

A3. 查询商户 Web 配置信息

http
POST /api/partner/company/v1/queryCompanyConfigInfo

用途:查询商户后台设置的默认配置,例如电话白名单、应用白名单、锁机文案等。

入参:

字段类型必填说明
apiKeyString商户 API Key
signHeader请求头签名

请求示例:

json
{"apiKey":"8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4"}

返回示例:

json
{
  "code": 200,
  "message": "Success",
  "data": {
    "whitelistPhoneNum": "222555661112223",
    "whitelistCallInPhoneNum": "222,4555,3",
    "customerServiceNum": "24222227772223,24222227772223",
    "whitelistAppContent": "[{\"execTime\":\"0\",\"execContent\":\"com.ksmobile.launcher\"}]",
    "watermarkTime": "[{\"execTime\":\"0\",\"execContent\":\"watermark\"}]",
    "smsBlockedTime": "172800",
    "callsBlockedTime": "0",
    "appBlockedContent": "[{\"execTime\":\"0\",\"execContent\":\"\",\"blockAllApp\":true}]",
    "autoPopupContent": "[{\"execTime\":\"0\",\"title\":\"title\",\"execContent\":\"content\"}]",
    "callsInTime": "0",
    "activeWatermarkContent": "active watermark",
    "screenBlockedContent": "{\"execContent\":\"Dear Customer, Your loan has been overdue.\",\"execTime\":\"0\",\"title\":\"Notice of repayment\"}",
    "operatorBlockedContent": "{\"execContent\":\"content\",\"title\":\"title\",\"allowList\":\"46000\"}",
    "fullScreenContent": "{\"fullScreenMsg\":\"msg\",\"fullScreenTitle\":\"title\",\"fullScreenName\":\"\",\"fullScreenLink\":\"\"}"
  }
}

A4. 批量查询设备锁状态

http
POST /api/partner/lock/v1/batchFindLockState

用途:批量查询设备锁信息,最多 100 个不重复设备标识。

入参:

字段类型必填说明
apiKeyString商户 API Key
deviceTagString条件必填多个 deviceTag 用英文逗号分隔,最多 100 个
imeiString条件必填多个 IMEI 用英文逗号分隔,最多 100 个
orderNumString多个订单号用英文逗号分隔,最多 100 个
signHeader请求头签名

请求示例:

json
{
  "deviceTag": "QYMDX4KN,UBK4F8XN,XNAYPCJL",
  "imei": "1587105425960,1587105425960",
  "orderNum": "D1587105425960,D1587105425960",
  "apiKey": "8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4"
}

返回示例:

json
{
  "code": 200,
  "message": "Success",
  "data": [
    {
      "deviceTag": "FLTZWA7V",
      "orderNum": null,
      "lockState": 5000,
      "mobileStatus": 2000,
      "serverState": 5000,
      "activeTime": null,
      "lastConnectTime": 1575896686,
      "expiration": 1576322185,
      "serverLockStatus": 2000,
      "lockRuleNum": 0,
      "imei": "1111111111111111111",
      "frameworkVersion": "1.2.0.0",
      "apkVersion": "1.2.0.0",
      "partnersPkgState": "TYPE_ABNORMAL"
    }
  ]
}

A5. 查询商户 License 信息

http
POST /api/partner/company/v1/checkLicense

用途:查询商户激活额度。

入参:apiKey、请求头 sign

请求示例:

json
{"apiKey":"8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4"}

返回示例:

json
{
  "code": 200,
  "message": "Success",
  "data": {
    "totalAmountOfLicense": 20000,
    "amountUsedOfLicense": 0,
    "remainingAmountOfLicense": 20000
  }
}

A6. 更新公司分步锁设置

http
POST /api/partner/company/v1/lock-rule/update

用途:更新公司层面的分步锁策略配置。

主要入参:

字段类型必填说明
apiKeyString商户 API Key
ruleNumInteger分步锁策略编号,0-5
strategyDescString分步锁备注
watermarkSwitchBoolean是否开启水印锁
watermarkContentJSONArray/String水印锁内容
callsOutSwitchBoolean是否开启呼出锁
callsOutContentJSONObject/String呼出锁内容
callsInSwitchBoolean是否开启呼入锁
callsInContentJSONObject/String呼入锁内容
smsBlockedSwitchBoolean是否开启短信锁
smsBlockedContentJSONObject/String短信锁内容
appBlockedSwitchBoolean是否开启 APP 锁
appBlockedContentJSONArray/StringAPP 锁内容
screenBlockedSwitchBoolean是否开启全屏锁
screenBlockedContentJSONArray/Object/String全屏锁内容
simBlockedSwitchBoolean是否开启 SIM 卡锁
simBlockedContentJSONObject/StringSIM 卡锁内容
signHeader请求头签名

请求示例:

json
{
  "apiKey": "8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4",
  "ruleNum": 0,
  "appBlockedSwitch": true,
  "appBlockedContent": "[{\"blockAllApp\":false,\"execContent\":\"com.test\",\"execTime\":\"0\"}]",
  "autoPopupSwitch": true,
  "autoPopupContent": "[{\"execContent\":\"for test content\",\"execTime\":\"259200\",\"title\":\"for test title\"}]",
  "callsInSwitch": true,
  "callsInContent": "{\"execTime\":\"259200\"}",
  "callsOutSwitch": true,
  "callsOutContent": "{\"execTime\":\"259200\"}",
  "screenBlockedSwitch": true,
  "screenBlockedContent": "{\"execContent\":\"for test content\",\"execTime\":\"259200\",\"title\":\"for test title\"}",
  "simBlockedSwitch": false,
  "simBlockedContent": "{\"execContent\":\"for test content\"}",
  "smsBlockedSwitch": true,
  "smsBlockedContent": "{\"execTime\":\"259200\"}",
  "watermarkSwitch": true,
  "watermarkContent": "[{\"execContent\":\"ABC\",\"execTime\":\"259200\",\"fontColor\":\"#E41111\",\"fontSize\":14}]"
}

返回示例:

json
{"code":200,"message":"Success"}

A7. 更新公司定制设置

http
POST /api/partner/company/v1/customize/update

用途:更新公司名称、Logo、客服电话、呼入/呼出白名单等。

入参:

字段类型必填说明
apiKeyString商户 API Key
callInPhoneNumString呼入白名单电话
callOutPhoneNumString呼出白名单电话
companyNameString公司名称
logoUrlStringLogo 地址
customerServiceNumListString客服电话列表字符串
signHeader请求头签名

请求示例:

json
{
  "apiKey": "8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4",
  "callInPhoneNum": "10086",
  "callOutPhoneNum": "10086",
  "companyName": "test",
  "logoUrl": "https://127.0.0.1/1.png",
  "customerServiceNumList": "[{\"countryName\":\"cn\",\"number\":\"10087\"}]"
}

返回示例:

json
{"code":200,"message":"Success"}

A8. 查询客户反馈信息

http
POST /api/partner/feedback/v1/query

用途:分页查询设备客户反馈。

入参:

字段类型必填说明
apiKeyString商户 API Key
deviceTagString设备标签
imeiString设备 IMEI
feedbackTypeString反馈类型
pageNumInteger页码
pageSizeInteger页大小
startTimeString开始时间,UTC0
endTimeString结束时间,UTC
signHeader请求头签名

请求示例:

json
{
  "apiKey": "8qXIGKndpecSDmlLF1HaQ0fN6AREjvs4",
  "deviceTag": "2H8DAUNM",
  "endTime": "2024-01-20",
  "imei": "855512222222226",
  "feedbackType": "Complaint",
  "pageNum": 1,
  "pageSize": 100,
  "startTime": "2024-01-01"
}

返回示例:

json
{
  "code": 200,
  "message": "Success",
  "data": {
    "count": 1,
    "list": [
      {
        "imei": "855512222222226",
        "deviceTag": "2H8DAUNM",
        "problemDesc": "test",
        "phoneNum": "",
        "email": "",
        "feedbackType": "Complaint",
        "fileUrl": null,
        "orderNum": null,
        "ct": "2024-01-16 10:05:44"
      }
    ]
  }
}

A9. 手机找回 - 提交

http
POST /api/partner/anti-theft/v1/submit

用途:开启或提交手机找回信息。

入参:apiKey 必填,contactInformation 必填,deviceTag/imei 设备标识,Header sign 必填。

请求示例:

json
{
  "apiKey": "NYBqesV7CROwx5yzH2cE3TvP0bLJ9hnd",
  "contactInformation": "2-20",
  "deviceTag": "LXNVTUPZ",
  "imei": "359076369133688"
}

返回示例:

json
{"code":200,"message":"Success","data":null}

A10. 手机找回 - 关闭

http
POST /api/partner/anti-theft/v1/close

用途:关闭手机找回。

入参:apiKey 必填,deviceTag/imei 设备标识,Header sign 必填。

请求示例:

json
{
  "apiKey": "NYBqesV7CROwx5yzH2cE3TvP0bLJ9hnd",
  "deviceTag": "LXNVTUPZ",
  "imei": "359076369133688"
}

返回示例:

json
{"code":200,"message":"Success","data":null}

A11. 手机找回 - 状态查询

http
POST /api/partner/anti-theft/v1/status

用途:查询手机找回端侧状态和操作状态。

入参:apiKey 必填,deviceTag/imei 设备标识,Header sign 必填。

请求示例:

json
{
  "apiKey": "NYBqesV7CROwx5yzH2cE3TvP0bLJ9hnd",
  "deviceTag": "LXNVTUPZ",
  "imei": "359076369133688"
}

返回示例:

json
{
  "code": 200,
  "message": "Success",
  "data": {
    "apkStatus": "Invalid",
    "operationStatus": "OFF",
    "contactInformation": "2-20"
  }
}

A12. 批量更新还款状态

http
POST /api/partner/lock/v1/batchUpdateRepayInfo

用途:批量更新还款状态,作用与单笔 updateRepayInfo 类似。

入参:

字段类型必填说明
apiKeyString商户 API Key
updateInfoString字符串形式的数组
signHeader请求头签名

updateInfo 内部字段同单笔还款状态变更。

请求示例:

json
{
  "apiKey": "NYBqesV7CROwx5yzH2cE3TvP0bLJ9hnd",
  "updateInfo": "[{\"repayedAmt\":1000,\"totalAmt\":3000,\"deviceTag\":\"PL9DU4CR\",\"nextRepayTime\":1778490281,\"nextRepayAmt\":1000,\"currencyType\":\"$\",\"currentTerm\":1,\"totalTerm\":3,\"description\":\"repay record update\",\"phoneNum\":\"1388188888\",\"imei\":\"358491280012251\"}]"
}

成功返回示例:

json
{
  "code": 200,
  "data": [
    {"deviceTag":"PL9DU4CR","reason":"Success","status":"200"}
  ],
  "message": "Success"
}

失败返回示例:

json
{
  "code": 400,
  "data": [
    {"deviceTag":"PL9DU4CR","reason":"DeviceTag or imei does not exist, or the two do not match","status":"20001"}
  ],
  "message": "Failed"
}

A13. 批量移除设备锁

http
POST /api/partner/lock/v1/batchRemoveLock

用途:批量移除设备锁。

入参:

字段类型必填说明
apiKeyString商户 API Key
removeInfoString字符串形式的数组
deviceTagString条件必填removeInfo 内部字段,deviceTagimei 二选一
imeiString条件必填removeInfo 内部字段,deviceTagimei 二选一
signHeader请求头签名

请求示例:

json
{
  "apiKey": "BS52jGm1nuZ7DVcURY6bJqhCpkvXraTH",
  "removeInfo": "[{\"deviceTag\":\"XZV4MYG2\"},{\"deviceTag\":\"PL9DU4CR\"}]"
}

返回示例:

json
{
  "code": 200,
  "data": [
    {"deviceTag":"XZV4MYG2","reason":"Success","status":"200"}
  ],
  "message": "Success"
}

A14. 查询 Promise Pay 列表

http
POST /api/partner/promise-pay/v1/list

用途:分页查询 Promise Pay 列表。

入参:apiKeypageNumpageSize 必填;deviceTagimei 选填;Header sign 必填。

请求示例:

json
{
  "apiKey": "Zq3j9Xt7ReadyicYPV4HAJTrvp1xbOsN",
  "pageNum": 1,
  "pageSize": 100,
  "deviceTag": "RTHK8DS4"
}

返回示例:

json
{
  "code": 200,
  "message": "Success",
  "data": {
    "list": [
      {
        "id": 93,
        "deviceTag": "RTHK8DS4",
        "imei": "357818601111127",
        "title": "111",
        "content": "222",
        "expirationTime": 1769529600,
        "status": "EXPIRED",
        "createTime": 1774332449000,
        "updateTime": 1774333371000,
        "responseTime": null,
        "ptpTime": 1773479242000,
        "delayReason": null,
        "messageId": "935173969914576896"
      }
    ],
    "total": 1,
    "pages": 1,
    "pageNum": 1,
    "pageSize": 100
  }
}

状态枚举:NOT_REGISTERED 未注册、EXPIRED 已过期、TO_REPAY 去还款、TERMINATED 已终止、REPAID 已还款。

A15. simLock Reset

http
POST /api/partner/sim-lock/v1/reset

用途:重置设备 simLock。

入参:apiKeydeviceTag、Header sign 必填。

请求示例:

json
{
  "apiKey": "Zq3j9Xt7ReadyicYPV4HAJTrvp1xbOsN",
  "deviceTag": "RTHK8DS4"
}

返回示例:

json
{"code":200,"message":"Success","data":null}

A16. 单笔设备锁有效期延期

http
POST /api/partner/active-expire-renewal/v1/renewal

用途:对单个设备锁有效期延期。

入参:apiKey 必填;deviceTagimei 只允许填一个;Header sign 必填。

请求示例:

json
{
  "deviceTag": "M3BGYDF4",
  "apiKey": "BS52jGm1nuZ7DVcURY6bJqhCpkvXraTH"
}

返回示例:

json
{
  "code": 200,
  "message": "Success",
  "data": {
    "deviceTag": "M3BGYDF4",
    "imei": "356779620009562",
    "beforeActiveExpireTime": "2028-06-14T08:36:06.000+00:00",
    "afterActiveExpireTime": "2028-07-14T08:36:06.000+00:00",
    "remainingRenewalLicense": 110
  }
}

A17. 批量设备锁有效期延期

http
POST /api/partner/active-expire-renewal/v1/batchRenewal

用途:批量设备锁有效期延期,最大 1000 条。

入参:apiKeyrenewalInfo、Header sign 必填。renewalInfo 为字符串形式的数组,每项可传 deviceTagimei

请求示例:

json
{
  "renewalInfo": "[{\"deviceTag\":\"M3BGYDF4\"},{\"deviceTag\":\"M3BGYDF3\"},{\"imei\":\"356779620009562\"}]",
  "apiKey": "Zq3j9Xt7ReadyicYPV4HAJTrvp1xbOsN"
}

返回示例:

json
{
  "code": 400,
  "message": "Failed",
  "data": {
    "successCount": 0,
    "failCount": 3,
    "remainingRenewalLicense": 108,
    "details": [
      {
        "deviceTag": "M3BGYDF4",
        "imei": null,
        "success": false,
        "errorCode": 40009,
        "errorMessage": "Device has been renewed in the last 24 hours",
        "beforeActiveExpireTime": null,
        "afterActiveExpireTime": null,
        "remainingRenewalLicense": null
      },
      {
        "deviceTag": "M3BGYDF3",
        "imei": null,
        "success": false,
        "errorCode": 50071,
        "errorMessage": "The device-lock not exist",
        "beforeActiveExpireTime": null,
        "afterActiveExpireTime": null,
        "remainingRenewalLicense": null
      }
    ]
  }
}

附录:接口总览(通用 28 + 微额贷款新增)

微额贷款(Microfinancing)变体额外提供 initializeLock 入口与全量错误码 / 限频 / 跨语言签名参考,详见 PayTrigger 微额贷款 Microfinancing 接入

通用设备锁接口(1–28)

编号接口路径
1预录入 IMEI/api/partner/lock/v1/imei/input
2取消预录入/api/partner/lock/v1/imei/cancel
3还款状态变更/实际解锁/api/partner/lock/v1/updateRepayInfo
4移除设备锁/api/partner/lock/v1/removeLock
5设备状态变化回调合作方回调地址
6合作方推送消息/api/partner/push/v1/sendPushInfo
7合作方批量推送消息/api/partner/push/v1/sendBatchPushInfo
8查询商户 Web 配置信息/api/partner/company/v1/queryCompanyConfigInfo
9临时解除设备锁/api/partner/unlock/v1/tempUnlock
10单个设备配置/锁策略/api/partner/lockRule/v1/setLockRule
11查询设备锁状态/api/partner/lock/v1/findLockState
12批量查询设备锁状态/api/partner/lock/v1/batchFindLockState
13通过 IMEI 查询 DeviceTag/api/partner/lock/v1/getDevice
14PIN 离线解锁/api/partner/unlock/v1/verifyCode
15查询商户 License/api/partner/company/v1/checkLicense
16查询机型/api/partner/model/v1/get
17更新公司分步锁设置/api/partner/company/v1/lock-rule/update
18更新公司定制设置/api/partner/company/v1/customize/update
19查询客户反馈信息/api/partner/feedback/v1/query
20手机找回 - 提交/api/partner/anti-theft/v1/submit
21手机找回 - 关闭/api/partner/anti-theft/v1/close
22手机找回 - 状态查询/api/partner/anti-theft/v1/status
23批量更新还款状态/api/partner/lock/v1/batchUpdateRepayInfo
24批量移除设备锁/api/partner/lock/v1/batchRemoveLock
25查询 Promise Pay 列表/api/partner/promise-pay/v1/list
26simLock Reset/api/partner/sim-lock/v1/reset
27单笔设备锁有效期延期/api/partner/active-expire-renewal/v1/renewal
28批量设备锁有效期延期/api/partner/active-expire-renewal/v1/batchRenewal

相关文档

  • PayTrigger 微额贷款 Microfinancing 接入:微额贷款变体入口 initializeLock、4 态生命周期、全量错误码、接口限频(QPS / 24h)、跨语言签名实现。本文的签名规则、共享接口字段均适用,错误码与限频以其附录为准。