联想端游联运SDK接入指南

1. 接入流程

本文档主要介绍了 联想PC游戏SDK接入流程、联想游戏提供的功能、接入注意事项等。

1.1. 接入方式

1. 联想游戏SDK2.1版本支持“账号+防沉迷+支付”接入方式;

a. 联想提供账号注册、登录等能力

b. 联想提供防沉迷服务

c. 联想提供游戏内支付

1.2. 对接流程

1. cp的游戏接入主要流程包括:

a. 联系联想运营,提供游戏和公司信息,获取cpid、游戏id、登录key(用于登录和防沉迷校验)、支付key(仅用于支付)

b. 签订合同

c. 接入联想游戏SDK

d. 提包测试、提供物料、上线运营等;

1.3. SDK下载地址

链接: https://lecloud.lenovo.com/share/37a7r4fRuzjNta1EE

提取码:ep4b

2. 接入说明

2.1. 登陆接入

2.1.1. 登录物料准备

设计图准备

CP需提供以下物料至联想游戏运营

1. 游戏背景图,尺寸350*400

2. 游戏LOGO,尺寸106*48

3. 游戏官网地址

登录原型如下:

备案号准备

CP需要向国家新闻出版署申请备案号,并且在版署防沉迷后台与联想游戏防沉迷备案信息绑定。联想游戏防沉迷备案信息:

公司名称:北京神奇工场科技有限公司

统一社会信用代码:91110108318338204D

2.1.2. 登录流程说明

a) 集成联想网游 SDK,登录取得token

b) 将获取到的 token 传递到游戏服务器

c) 通过【获取用户信息接口】验证 token的有效性,同时获取用户的唯一 ID

2.2. 支付接入

2.2.1. 支付模式说明

联想SDK支持两种支付接入,可任选其中一种进行接入,两者的区别如下:

模式一:接入支付h5

联想游戏SDK仅提供支付H5页面,CP需要将支付相关参数拼接至支付url地址后,并自行开发页面容器展示该url。

模式二:直接调起SDK

联想游戏SDK提供支付页面,CP仅需要将相关参数上传,调用联想游戏SDK。

2.2.2. 模式一接入说明

2.2.2.1. 支付流程说明

2.2.2.2. 准备页面容器

1. 联想PC游戏SDK提供游戏内支付页面,支持用户直接在游戏内支付。使用该支付页时,游戏CP需要提供:

a. 页面容器:提供526px*398px的页面容器,在游戏内拉起web页;

b. 窗口标题栏:由游戏提供,下图为建议标准样式,接入资料zip包中附带标准素材;

2.2.2.3. 拼接参数至支付页url

接口说明

cp方拉起联想支付页URL时需要携带以下参数:(所有参数都需要进行urlEncode编码)

请求参数
urlhttps://hd.lenovomm.com/front-wdsdk/pay/index.html
接口协议HTTP[S] GET
请求参数参数名参数类型是否必填说明
partnerCPIDstring*是由联想运营提供
notifyUrl异步通知地址string*是CP方提供
outTradeNo订单号string双方对账使用,如未传订单号,会生成唯一订单号,后续对账以联想订单号为准。
appId游戏idint*是由联想运营提供(gameId)
totalFee指定金额int最小为1元,精确到小数点后2位。不传则用户可自定义充值金额
subject商品名称string*是商品的名称,例:月卡、元宝、钻石等(需要URL编码)
account用户账号string*是用户账号,需要脱敏
extraCommonParam透传参数json格式jsoncp业务透传参数
server区服名称string*是区服名称(需要URL编码)
role角色名称string*是角色名称(需要URL编码)
bizid游戏备案号string*是游戏备案号
tgt用户登录成功时返回的TGTstring*是用户唯一标识
sign使用支付参数生成的验签字符串string*是参考7.1.4签名备注
sign_type签名类型string*是签名类型固定值RSA2

2.2.3. 模式二接入说明

2.2.3.1. 支付流程说明

2.2.3.2. 传参说明

cp方拉起联想SDK时需要传递以下参数:

请求参数参数名参数类型是否必填说明
notifyUrl异步通知地址string*是CP方提供
outTradeNo订单号string双方对账使用,如未传订单号,会生成唯一订单号,后续对账以联想订单号为准。
totalFee指定金额int最小为1元,精确到小数点后2位。不传则用户可自定义充值金额
subject商品名称string*是商品的名称,例:月卡、元宝、钻石等
extraCommonParam透传参数json格式jsoncp业务透传参数
server区服名称string区服名称
role角色名称string角色名称

2.3. 防沉迷

2.3.1. 防沉迷流程说明

1. 联想PC游戏SDK提供防沉迷的接入能力,其中用户登陆时的实名校验、实名认证、未成年游戏限制均已包含在登陆的流程内,无需CP接入和二次开发。用户支付时的实名校验和消费限制包含在支付的流程内,无需CP接入和二次开发。

2. 但针对游戏内未成年用户时长超出国家游戏时长规定的场景,游戏SDK不提供直接踢出游戏的能力,而是提供一个【用户防沉迷接口】,可查询用户在当前时间是否可玩游戏,CP需要通过调用接口轮询用户在当前时间是否可玩游戏,若不可玩游戏,需要将用户踢出。

3. 联想端游SDK API介绍

3.1. 登陆的调用方式

1. 端游SDK以dll形式提供,名称为PCGameSDK.dll,可使用动态或静态加载方式使用该dll。ludp.dll为PCGameSDK.dll提供功能支持,并配有相关导入库和头文件PCGameSDK.lib,PCGameSdk.h。

2. PCGameSDK.dll使用说明:

a) 接口使用说明:

i. PCGameSDK.dll,ludp.dll需放在调用该dll的exe同级目录下。

ii. 调用LGSDKInit,该接口用来设置回调,用于接收SDK返回的数据。参数为LGSDKCallBack callback,其中

typedef bool(*LGSDKCallBack)(wchar_t* in_param);

接口返回说明 :

错误码说明
true成功
false失败

iii. 调用LGSDKLogin,该接口用来弹出登录窗口。传入参数为json字符串,如下:

 调起登录器参数:

参数说明
cpid联想游戏运营分配
appid游戏id,联想游戏运营分配
bizid游戏备案码,CP向国家新闻出版署申请
Key联想游戏运营分配

登陆成功后回传参数:

参数说明
TGT发起支付时携带,作为用户标识
Token用户token,结合Realm查询联想用户id作为用户唯一标识
Age用户年龄,防沉迷时携带

 接口返回说明 :

错误码说明
0成功
10初始化接口未调用
20登录窗已存在
30参数错误

b) 接口调用时机:

CP启动时应首先调用LGSDKInit,LGSDKLogin接口,弹出登录框,登录成功以后,再走CP 后续流程。

c) 接口调用示例代码:

std::wstring strParam = 
L"{\"appid\":\"此处替换成appid\",
\"cpid\":\"此处替换成cpid\",
\"bizid\":\"此处替换成bizid\",
\"key\":\"此处替换成key \"}";
int nSize = strParam.size();
bool bRet = LGSDKInit(SDKCallBackFunAsync);
wchar_t *pwszBuffer = new wchar_t[nSize + 1];
ZeroMemory(pwszBuffer, nSize + 1);
tcscpy_s(pwszBuffer, nSize + 1, strParam.c_str());
int statusCode = LGSDKLogin(pwszBuffer);
delete[] pwszBuffer;
pwszBuffer = nullptr;
return 0;

其中回调函数可以接收到SDK返回的数据,数据格式为json。

bool CTest::SDKCallBackFunAsync(wchar_t* in_param)
{if (in_param == nullptr)return false;::MessageBox(NULL, in_param, L"提示信息", MB_OK);return true;
}

3.2. 支付的调用方式

1.支付接口定义:

extern "C"  PCGAME_SDK_API int LGSDKPay(wchar_t* in_param);

入参:json格式 具体key值定义结构参考 2.2.3.2

返回说明:0- 成功 , 30-参数错误

2使用说明:用户登录成功后才能调用该接口  

3接口调用示例:

std::wstring strPayContent = L"{\"notifyUrl\":\"https://api.game.com\",  \
\"subject\" : \"1元礼包",\"totalFee\" : 1}";
int nRet = LGSDKPay((wchar_t*)strPayContent.c_str());                              

4. 服务端API介绍

4.1. 服务端获取用户信息接口

1. 请求地址https://auth.lenovomm.com/game-ms-id-auth-core/api/a ccount/identify

2. 请求类型:POST

3. Content-type: application/json

4. 参数(json字符串)

名称字段是否必填说明
标识realmY固定值,传pcgame.lenovomm.com
tokenlpsustY
当前时间戳毫秒值timestampY
随机字符串nonceY
游戏idappIdY
签名signY请看7.1.4签名备注
签名类型sign_typeY默认值RSA2

5. 返回值格式

{

 "code": 10000,    //10000表示正常,非10000表示业务异常

 "data": {},    //返回的数据

 "message": "string"  //错误提示信息

}

6. http状态码:

200-成功

400-缺少参数

401-签名错误

500-业务异常

4.2. 服务端支付通知接口

接口说明

用于通知用户支付状态。

请求参数

url游戏方接收支付通知URL (即下单时传递的notifyUrl参数)
接口协议HTTP[S] (POST)
请求参数参数名参数类型是否必填说明
sign签名string*是支付通知回调签名,参加下方签名规则
outTradeNo商户网站唯一订单号string*是商户系统内部订单号,同一商户下唯一
subject商品名称string*是商品的名称,例:月卡、元宝、钻石等
body商品描述string对一笔交易的具体描述信息
tradeNo支付宝、微信交易号string该交易在支付宝、微信系统中的交易流水号
tradeStatus交易状态string支付状态,TRADE_SUCCESS ——交易成功,其他值为失败状态
totalFee交易金额number该笔订单的资金总额,单位为元,精确到小数点后两位。
extraCommonParam公用回传参数string*是用于商户回传参数,该值不能包含“=”、“&”等特殊字符。如果用户请求时传递了该参数,则支付通知接口会回传该参数。

通知接口返回

1.  HTTP状态码为200,表明调用成功。其他状态为失败。

2.  接口返回“success”,则代表交易成功,返回其他值则代表通知失败。

3.  针对通知失败的订单,会定时发起重试请求。

支付签名规则

1.  参数排序

所有请求参数剔除sign以及值为空的参数,按照参数字母升序排

2.参数拼接

将排序后的参数与其对应值,按照参数=参数值的格式,并用“&”字符将其拼接成串,在最后追加上支付key。

3. 对拼接后字符串做MD5并转小写。

4. 支付key

支付接口中所用的key与登录接口的key不同,请注意区分

支付签名示例

支付key :2ppfQCHMWid1

明文字符串:outTradeNo=465215151893&partner=208810156864&subject=game &totalFee=102ppfQCHMWid1

加密字符串:1bbdebc58f85e8b6f83797109ce76d89

4.3. 服务端用户防沉迷接口

调用方法:

1. 请求路径https://vb.lenovomm.com/game-ms-user-identify-core/api/underagegamepreventaddiction

2. 请求类型:POST

3. Content-type: application/json

4. Header参数

名称字段是否必填说明
标识realmY固定值,传pcgame.lenovomm.com(不参与签名)
lpsusttokenY(不参与签名)

5. body参数(json字符串)

名称字段是否必填说明
当前时间戳毫秒值timestampY
随机字符串nonceY
游戏idappIdY
签名signY请看7.1.4备注
签名类型sign_typeY默认值RSA2
年龄ageY

6. 返回值格式

{

 "code": 10000, //10000表示正常,非10000表示业务异常

 "data": {

   "preventAddictionMsg": "限制登录提示信息",

   "preventAddictionType": 1-不限制登录,2限制登录

 },

 "message": "Success"

}

7. http状态码:

200-成功

400-缺少参数

401-签名错误

500-业务异常

5. SDK版本更新日志

5.1. V2.1.0内容变更

变更项接入说明
1、登录页置顶展示,且满足登录窗口拖动游戏登录页置顶在windows页面最顶层
2、获取用户信息接口新增返回年龄返回参数新增年龄字段
3、收银台支付封装,可直接调起联想SDK完成支付流程V2.1.0新增内容,V2.0.0可满足支付的情况下,无需更新

6. 接入注意事项

登录key和支付key不同,请区分使用

7. 其他说明

7.1. 安装包提供

1. 安装包需要同时提供2种形式:

a. 整包:需要将所需资源全部打包到一个安装程序中,安装过程无需下载额外资源;

b. 下载器:提供游戏下载器,安装时通过下载器下载游戏资源;

7.2. 游戏的更新

1. 更新资源小于1G的版本更新在游戏内完成,无需向联想游戏提供游戏更新包;

2. 更新资源大于1G的版本更新时,除游戏内更新外,还需要重新向联想游戏提供安装包,并提供版本更新说明;

3. 下载器如有更新,需要重新提供安装包;

7.3. 游戏数据

1. 游戏方需要提供游戏数据,包含:游戏安装完成数、游戏激活数、游戏卸载数、用户游戏局数分布、用户购买道具信息分布;

2. 建议以后台形式提供;

7.4. 签名备注

开发者需要自行实现签名,签名过程如下:

1.筛选并排序

获取所有请求参数,不包括字节类型参数,如文件,字节流,不包括请求路径中占位符的值,剔除sign字段,剔除值为空的参数,并按照第一个字符的键值ASCII码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推。

2.拼接

将排序后的参数与其对应值,组合成“参数=参数值”的格式,并且把这些参数用&字符连接起来,此时生成的字符串为待签名字符串。

3.签名

使用各自语言对应的SHA256WithRSA(对应sign_type为RSA2)或SHA1WithRSA(对应sign_type为RSA)签名函数利用开发者私钥对待签名字符串进行签名,并进行Base64编码。

4.拼接参数

将生成的签名赋值给sign参数,拼接到请求参数中,再将每个参数做urlencode(utf-8编码)后发起请求即可。 注: 请求类型为:application/x-www-form-urlencoded才需要编码,application/json 不用编码

示例:

一、签名准备

1. 原始内容: 【classifyCode=PC&v=&sign_type=RSA2&appId=20201028】

2. 签名私钥: 【MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQClcxcmpvWF8l0rjHtqmqCGXnzqnADYh3yirMlOVW+F8A+BboJfrOiyddwjLnNhwa02bSLu8jKdJ5QDLTKLvgQdQsEQviO9h22nu6ouFEfBT4rbxlc83B3vT1FZaT00DAHlATKDCARbjrQ0EEr57bkWX2SSKFEEOBCA06KwituJk/fGi6oNAD+e/KMxfPgdjzM2fwul2YxV1zHCSc/Xc7EBjjY/0tk/+/TehIBoE0zEpyzUXLVKt71i8qw0ygiRFO1Q3NTKT+Ht4ouK34827QvMpTQ/I0MGbdAtjZDLY6SNi1EoHp3X9xdr1kvP8XAggTiHG5lmL3EK62vTcbsA9KjzAgMBAAECggEBAJCNNH3tw3frICILVEz4miWr6kHkWQzVmzxZ8GvDU3PXIQT5s2i6HnjFZrdKPz76w0ZZJftUmooZ6US5OX9EXj3ec+YX6gwOhezVlsM5rtOjlnOcH94phvHt/+o5e2K81u7pE+PNnlkMHj+auJcSbvKwF6NnHBmujiSwQ2UxfMv+lwaazrTu/FFPFCMGtYkxeqC9Iwe9qJAQURCgE4lgzMuM2rUZqAPhZ298+c/lbovNWtV9tGb8jdiKprpUDuvYnJ4JHkUq5+V7WCtESzBUZVrXv0wkie2RJkN/OsirtwYFk+0MjX1sH4ciJFhY9atPfD1dZYBhhZezAQQuOU4ja1kCgYEA0Ia0Zo9z1GnWQbSyrdYwj9CgSm/fiZSU1nhVqmMJp3GWb9R42nMRcNk9Op4spreENCK1r55BZzmCMs4KIj9oiJz0ckczUgWoRHFUDwd5qWoMdCWlnJuQeFabd6bPxZRmXShIhIy1NQbk2lzIq4bpWKgEQ2TKSDaQ8S2JZj3q890CgYEAyx3M0pndOrpqyKYaJIJKsb+jX4NUSmFTzlWtASGKNG2MQeWwAHKkWi2GEv2g2w/XijNUL4FCkGwCT0o4v1HXRrs5LWRXislFHMDHAIdwrSWM5bouPesXDe67tC5hTmu8UhGsUfemB086uUgkqwZv23x0m9ZvHcfogN3FQS6faw8CgYBl6qB7S/uhwsSsQoPeAMSlVaMyHnGTzaHdHN1JtLQAObz8FU2n/vt0O0j4wFw0c5dS3/AK0H9I00u2Rwue53zQ4F19CR2lJgyyvu0Fl3K4AZPqpIfH/iRjHHlJxqbf+4L4Xvrqhdb+/sqViyms4/hik2PaCIXxO3Il3kq8RODzpQKBgQDCizlqIcs+e9zZcBasD0thsm7VheFPGKd/gpog8jIAg0iKuWd5FlUKtn2rZNgT2bmVehJRKdpKn9kafrmZrdamvZ5HNsuOd7bFknNIs3EdtlCcnFW8IpbDVnzcWGwFA7WtWZYWMEAK0j0px8qvMIwkyrCZrqpg+N9dxowvIWu5ywKBgGbULkj4HIuMOhCb68R1OLf2n8VloeuTnX0mHJWqvN2pFt2K8lm2ZWX4GpC09QZXw/1C0VM1syKsNbUe/2sprF0FYzbRrdvPk2yjvJbus5XhnPL5CW9zOUyu+KIHwsOOAVoNn37j3sZnQ3unS+it4Mpno+LbblCffGO/Czg68BX2】

二、生成待签名字符串:

1. 剔除参数名(和参数值)前后的空格: (正常业务下,参数值前后不应含有空格) 【classifyCode=PC&v=&sign_type=RSA2&appId=20201028】 删除空字段【v】

2. 剔除空值参数: 【classifyCode=PC&sign_type=RSA2&appId=20201028】

3. 排序: 【appId=20201028&classifyCode=PC&sign_type=RSA2】

三、生成签名: 【DZw/dCtCgRkvszdCRKekzKDe2m+J8pZxh4eCk1DNOXE7SKq4TE6pm/z7N49LaSauEpXyX4MJR5VZSRUeu8avO3K4ma6MGcDMKg2lWD7MLwoA9O0Q7QXVlY04ytwlXw9GVya8oL+Dyka0CspTSPJUZtKf5oJRK03XMRyWJw6+ERJuMb2HptgknNPYhsm7B2SqCyDRaVUa69h9NxIxhm17ora3RNbSkThnbkaFtxAXSol7GGWHHng23uekv8MJSalwFSZS4tuPhc4EMIAigC57+pdntgGlzmHj9AfnQ1FODV9bk0cJYDaK7eYUxUZx2T/OfKtzawKoM+qLHTw27fB/1g==】

7.5. SDK兼容性说明

SDK仅支持Win10以上操作系统

原文地址:https://open.lenovomm.com/developer/doc?id=1689213143070081026

联想开放平台地址:联想开放平台

联想开发者专属QQ客服(工作日9:30-18:00):联想开发平台首页右侧悬浮的在线客服聊天入口可直接会话,无需添加好友。也可搜索官方客服QQ号2881414004。

联想应用商店微信公众号:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/15796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学习笔记】计算机组成原理(八)

CPU 的结构和功能 文章目录 CPU 的结构和功能8.1 CPU的结构8.1.1 CPU的功能8.1.2 CPU结构框图8.1.3 CPU的寄存器8.1.4 控制单元CU和中断系统 8.2 指令周期8.2.1 指令周期的基本概念8.2.2 指令周期的数据流 8.3 指令流水8.3.1 指令流水原理8.3.2 影响流水线性能的因素8.3.3 流水…

数据库-SQL性能分析

SQL执行频率 慢查询日志 慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有 SQL语句的日志。 MySQL的慢查询日志默认没有开启,我们可以查看一下系统变量 slow_query_l…

html5 笔记02

目录 01 svg的基本使用 02 svg绘图 03 进程和线程 01 svg的基本使用 svg和canvas的区别: canvas: 1.canvas作为一个容器只有一个dom元素 ,内部元素无法使用dom操作 (canvas不能展开然后选择不到 svg查看元素能选中因为是通过标签控制的) 2.canvas 是配合js完成各种绘制效果 …

指纹识别概念解析

目录 1. 指纹是物证之首 1.1 起源于中国 1.2 发展于欧洲 1.3 流行于全世界 2. 指纹图像 3. 指纹特征 4. 指纹注册 5. 指纹验证 6. 指纹辨识 1. 指纹是物证之首 指纹识别技术起源于中国、发展于欧洲、流行于全世界。自20世纪以来,指纹在侦破刑事案件、解决诉…

水泥超低排平台哪家好?

随着环保政策的加强和绿色发展理念的深入人心,水泥行业的超低排放改造已成为行业发展的新趋势。选择一个合适的水泥超低排平台对于确保改造效果和实现企业的可持续发展至关重要。朗观视觉小编将从多个角度出发,为您提供一份综合评估与选择攻略&#xff0…

[C语言]自定义类型详解:结构体、联合体、枚举

目录 🚀结构体 🔥结构体类型的声明 🔥结构的自引用 🔥结构体变量的定义和初始化 🔥结构体内存对齐 🔥结构体传参 🔥结构体实现位段(位段的填充&可移植性) &a…

安装 Ubuntu桌面版,详细步骤(附引导 U盘制作工具)

下载镜像 安装Ubuntu首先要下载镜像包,访问下面网址下载镜像包 https://releases.ubuntu.com/ 选择你要安装的Ubuntu版本 将 .iso 文件保存到所需位置,下面会使用此文件创建可引导 U盘。 制作 Ubuntu 引导 U 盘 首先要找到一个大于4G的U盘&#xff…

猫头虎 解析:为什么AIGC在国内适合做TOB,在国外适合做TOC?

猫头虎 解析:为什么AIGC在国内适合做TOB,在国外适合做TOC? 博主 猫头虎 的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面…

ps进程查看命令详解

1、PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照。它能捕获系统在某一事件的进程状态。如果你想不断更新查看的这个状态,可以使用top命令。 2、ps命令支持三种使用的语法格式 UNIX 风格,选项可以组合在一起…

鸿蒙ArkUI-X平台差异化:【运行态差异化(@ohos.deviceInfo)】

平台差异化 简介 跨平台使用场景是一套ArkTS代码运行在多个终端设备上,如Android、iOS、OpenHarmony(含基于OpenHarmony发行的商业版,如HarmonyOS Next)。当不同平台业务逻辑不同,或使用了不支持跨平台的API&#xf…

Postman快捷功能-批量断言与快速查询替换

大家好,在我们日常的接口测试工作中,经常需要对接口返回的数据进行断言,以确保接口的正确性。当接口数量较多时,逐个编写断言语句会变得非常繁琐。此外,在接口测试过程中,我们还可能需要频繁地查找和替换某…

Python自动化工具(桌面自动化、Web自动化、游戏辅助)

工具介绍 连点工具是一款可以模拟键鼠后台操作的连点器工具。支持鼠标连点、键鼠脚本录制,支持辅助您实现办公自动化以及辅助游戏操作。功能简洁易用,非常方便操作。连点工具让您在在玩游戏、网购抢购的时候全自动点击鼠标!主要功能有&#…

MySQL数据库的数据文件保存在哪?MySQL数据存在哪里

在安装好MySQL数据库使用一段时间后,会产生许多的数据库和数据。那这些数据库的数据文件存放在本地文件夹的什么位置呢 一、默认位置 一般来说MySQL数据库的数据文件都是存放在data文件夹之中,但是根据使用的存储引擎不同,产生的一些文件也…

24李林跌落神坛,880还刷吗?还是换1000、900、660?

“李林今年跌落神坛了!” “全是固定题型没新题,结果今年考的全是新题。” 880是“老真题的神”, 遇到24年,冷门考点多,计算量又大,就不灵了。 但“老真题”,还是得刷。就像往年真题是要刷的…

(十一)统计学基础练习题五(50道选择题)

本文整理了统计学基础知识相关的练习题,共50道,适用于想巩固统计学基础或备考的同学。来源:如荷学数据科学题库(技术专项-统计学二)。序号之前的题请看往期文章。 201) 202) 203) 2…

得帆信息PMO总监李健达受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 上海得帆信息技术有限公司aPaaS业务线副总裁、PMO总监李健达先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“AI时代的PMO工作法”。大会将于6月29-30日在北京举办,敬请关注! 议题简要&#x…

Spring框架学习笔记(五):JdbcTemplate 和 声明式事务

基本介绍&#xff1a;通过 Spring 框架可以配置数据源&#xff0c;从而完成对数据表的操作。JdbcTemplate 是 Spring 提供的访问数据库的技术。将 JDBC 的常用操作封装为模板方法 1 JdbcTemplate 使用前需进行如下配置 1.1 在maven项目的pom文件加入以下依赖 <dependencies…

labelme的使用

创建虚拟环境 听说是要用这个3.6版本的python环境 conda create --namelabelme python3.6激活虚拟环境 activate labelme下载labelme pip install labelme #安装labelme组件启动labelme 在你打开文件的时候推荐还是自己先建立一个label.txt 把自己要分的类别放进去 label.…

翻译《The Old New Thing》- What‘s the deal with the EM_SETHILITE message?

Whats the deal with the EM_SETHILITE message? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20071025-00/?p24693 Raymond Chen 2007年10月25日 简要 文章讨论了EM_SETHILITE和EM_GETHILITE消息在文档中显示为“未实现”的原因。这些…

前端 JS 经典:Web 性能指标

什么是性能指标&#xff1a;Web Performance Metrics 翻译成 Web 性能指标&#xff0c;一般和时间有关系&#xff0c;在短时间内做更多有意义的事情。 一个站点表现得好与不好&#xff0c;标准在于用户体验&#xff0c;而用户体验好不好&#xff0c;有一套 RAIL 模型来衡量。这…