# Python 快速接入

泡椒云网络验证官方提供的 Python SDK,方便 Python 开发者接入。

# 接入须知

# 获取方式 (任选其一)

  • 1、直接 pip 安装(推荐)
pip install --upgrade PJYSDK
1

# 使用方式

如果是pip安装的,直接看示例。

如果是下载压缩包,将PJYSDK文件夹解压放入你的项目中即可,然后在脚本中通过 from PJYSDK import * 引入。
压缩包中的main.py是一个示例。

一个示例:

from PJYSDK import *
import os
import time

# 初始化 app_key 和 app_secret 在开发者后台新建软件获取
pjysdk = PJYSDK(app_key='AppKey', app_secret='AppSecret')
pjysdk.debug = True


# 心跳失败回调
def on_heartbeat_failed(hret):
    print(hret.message)
    if hret.code == 10214:
        os._exit(1)  # 退出脚本
    print("心跳失败,尝试重登...")
    login_ret = pjysdk.card_login()
    if login_ret.code == 0:
        print("重登成功")
    else:
        print(login_ret.message)  # 重登失败
        os._exit(1)  # 退出脚本


if __name__ == '__main__':
    pjysdk.on_heartbeat_failed = on_heartbeat_failed # 设置心跳失败回调函数
    pjysdk.set_device_id('123')  # 设置设备唯一ID
    pjysdk.set_card('Card')  # 设置卡密
    
    ret = pjysdk.card_login()  # 卡密登录
    if ret.code != 0:  # 登录失败
        print(ret.message)
        os._exit(1)  # 退出脚本
    
    # 登录成功,后面写你的业务代码
    while 1:  # 测试用,hold住主线程不要退出,记得删除,后面应该是你的代码了
        print(pjysdk.get_time_remaining())
        time.sleep(5)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

# 可更改变量

  • pjysdk.debug : bool型,默认为True,开启后会在控制台输出每次请求的详细信息,方便调试
  • pjysdk._device_id : string型,python需自己获取设备码并设置。且该值不能为空。
  • pjysdk._auto_heartbeat : bool型,是否自动开启心跳,默认true,不建议修改。
  • pjysdk._token : string型,登录成功返回的token。对于退出软件未调用退出登录,返回多开上限的情况,可以在登录成功后本地存下来,下次登录前先设置token调用退出登录
  • pjysdk._retry_count : int型,请求失败重试次数,默认9次。调大重试次数和软件配置里的token有效期,有助于改善软件运行稳定性

# 可获取变量

注意

以下变量都为登录成功后才能取到值的。

  • pjysdk.login_result.card_type : 卡密类型,例如:年卡
  • pjysdk.login_result.expires : 过期时间,例如:2020-10-16 00:47:58
  • pjysdk.login_result.expires_ts : 过期时间戳,例如:1602780478
  • pjysdk.login_result.config : 卡密或用户配置,开发者可通过接口自定义的
  • pjysdk.is_trial : 是否是试用登录

# 初始化

# 初始化SDK

# 语法

pjysdk = PJYSDK(app_key, app_secret)
1

# 参数

参数名 必传 类型 参数说明
app_key string 软件的app_key,开发者后台获取
app_secret string 软件的app_secret,开发者后台获取

# 初始化设备号

# 语法

pjysdk.set_device_id(device_id)
1

# 参数

参数名 必传 类型 参数说明
device_id string 用户设备唯一标识(长度不超过45位)

# 初始化卡密

# 语法

pjysdk.set_card(card)
1

# 参数

参数名 必传 类型 参数说明
card string 用户填写的卡密(长度不超过45位)

# 初始化用户账号

# 语法

pjysdk.set_user(username, password)
1

# 参数

参数名 必传 类型 参数说明
username string 用户名(长度不能超过20位)
password string 用户密码(长度6-30位)

# 获取时间戳(网络时间)

# 语法

ts = pjysdk.timestamp()
1

# 参数

# 返回值

数值类型,例:1602780478

# 获取心跳结果

# 语法

ret = pjysdk.get_heartbeat_result()
1

# 参数

# 返回值

字典类型,例:{"code": 0, "message": "ok"}

# 获取剩余时长

# 语法

ret = pjysdk.get_time_remaining()
1

# 参数

# 返回值

数值类型,剩余多少秒,例:1024

# 卡密登录

注意

调用此接口前需调用 pjysdk.setCard(card) 初始化卡密
登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。
开发者只需在自己的脚本中通过调用 pjysdk.get_heartbeat_result() 获取当前心跳结果。

# 语法

ret = pjysdk.card_login()
1

# 参数

# 返回值

字典类型,例:参考接口返回

# 卡密退出登录

# 语法

ret = pjysdk.card_logout()
1

# 参数

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 卡密解绑设备

说明

请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。
该接口只能在卡密登录后调用。更多说明

# 语法

ret = pjysdk.card_unbind_device()
1

# 参数

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 卡密设置解绑密码

说明

请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。
该密码用于绑定设备丢失或者其它原因导致无法在老设备登录时解绑设备。

# 语法

ret = pjysdk.set_card_unbind_password(password)
1

# 参数

参数名 必传 类型 参数说明
password string 解绑密码,6-10位

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 卡密通过密码解绑设备

说明

请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。
该接口用于绑定设备丢失或者其它原因导致无法在老设备登录时,通过解绑密码解绑设备。

# 语法

ret = pjysdk.card_unbind_device_by_password(password)
1

# 参数

参数名 必传 类型 参数说明
password string 解绑密码,6-10位

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 卡密充值(以卡充卡)

# 语法

ret = pjysdk.card_recharge(card, use_card)
1

# 参数

参数名 必传 类型 参数说明
card string 被充值的卡密(长度不超过45位)
use_card string 充值使用的卡密(长度不超过45位)

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 用户注册(通过卡密)

# 语法

ret = pjysdk.user_register(username, password, card)
1

# 参数

参数名 必传 类型 参数说明
username string 用户名(长度不能超过20位)
password string 用户密码(长度6-30位)
card string 注册使用的卡密(长度不超过45位)

# 返回值

字典类型,例:{"code": 0, "message": "ok"}

# 用户登录

注意

调用此接口前需调用 pjysdk.setUser(username, password) 初始化用户账号密码
登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。
开发者只需在自己的脚本中通过调用 pjysdk.get_heartbeat_result() 获取心跳结果。

# 语法

ret = pjysdk.user_login()
1

# 参数

# 返回值

字典类型,例:参考接口返回

# 用户退出登录

# 语法

ret = pjysdk.user_logout()
1

# 参数

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 用户修改密码

# 语法

ret = pjysdk.user_change_password(username, password, new_password)
1

# 参数

参数名 必传 类型 参数说明
username string 用户名(长度不能超过20位)
password string 当前密码(长度6-30位)
new_password string 新密码(长度6-30位)

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 用户充值(通过卡密)

# 语法

ret = pjysdk.user_recharge(username, card)
1

# 参数

参数名 必传 类型 参数说明
username string 用户名(长度不能超过20位)
card string 充值使用的卡密(长度不超过45位)

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 用户解绑设备

注意

只能在用户登录后调用。更多说明

# 语法

ret = pjysdk.user_unbind_device()
1

# 参数

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 试用登录

注意

登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。
只需在自己的脚本中通过调用 pjysdk.get_heartbeat_result() 获取当前心跳结果。

# 语法

ret = pjysdk.trial_login()
1

# 参数

# 返回值

字典类型,例:参考接口返回

# 试用退出登录

# 语法

ret = pjysdk.trial_logout()
1

# 参数

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 获取卡密配置

# 语法

ret = pjysdk.get_card_config()
1

# 参数

# 返回值

字典类型,例:参考接口返回

# 更改卡密配置

# 语法

ret = pjysdk.update_card_config(config)
1

# 参数

参数名 必传 类型 参数说明
config string 自定义配置(长度不能超过512位)

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 获取用户配置

# 语法

ret = pjysdk.get_user_config()
1

# 参数

# 返回值

字典类型,例:参考接口返回

# 更改用户配置

# 语法

ret = pjysdk.update_user_config(config)
1

# 参数

参数名 必传 类型 参数说明
config string 自定义配置(长度不能超过512位)

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 获取软件配置

# 语法

ret = pjysdk.get_software_config()
1

# 参数

# 返回值

字典类型,例:参考接口返回

# 获取软件公告

# 语法

ret = pjysdk.get_software_notice()
1

# 参数

# 返回值

字典类型,例:参考接口返回

# 获取软件最新版本

# 语法

ret = pjysdk.get_software_latest_version(current_ver)
1

# 参数

参数名 必传 类型 参数说明
current_ver string 当前本地的版本(长度不能超过30位)

# 返回值

字典类型,例:参考接口返回

# 获取远程变量

# 语法

ret = pjysdk.get_remote_var(key)
1

# 参数

参数名 必传 类型 参数说明
key string 远程变量名(长度不能超过64位)

# 返回值

字典类型,例:参考接口返回

# 获取远程数据

# 语法

ret = pjysdk.get_remote_data(key)
1

# 参数

参数名 必传 类型 参数说明
key string 远程数据key(长度不能超过64位)

# 返回值

字典类型,例:参考接口返回

# 操作远程数据

# 新增远程数据

# 语法

ret = pjysdk.create_remote_data(key, value)
1

# 参数

参数名 必传 类型 参数说明
key string 远程数据key(长度不能超过64位)
value string 远程数据值(长度不能超过256位)

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 修改远程数据

# 语法

ret = pjysdk.update_remote_data(key, value)
1

# 参数

参数名 必传 类型 参数说明
key string 远程数据key(长度不能超过64位)
value string 远程数据值(长度不能超过256位)

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 删除远程数据

# 语法

ret = pjysdk.delete_remote_data(key)
1

# 参数

参数名 必传 类型 参数说明
key string 远程数据key(长度不能超过64位)

# 返回值

字典类型,例:{"code": 0, "message": "OK"}

# 调用远程函数

# 语法

ret = pjysdk.call_remote_func(func_name, params)
1

# 示例

远程函数为

function add(a, b) {
  return a + b;
}
1
2
3

脚本中调用

ret = pjysdk.call_remote_func('add', [1, 2])
if ret.code == 0:
    print(ret.result['return'])
else:
    print(ret.message)
1
2
3
4
5

# 参数

参数名 必传 类型 参数说明
func_name string 远程函数名(长度不能超过64位)
params array 参数列表,例:Array(1, 2)

# 返回值

字典类型,例:{"code": 0, "message": "OK", "result": {"return": 3}}