
uni-cloud-router 运行时报controller找不到文件
在baseDir处,就跟官方一模一样,我手贱了,改了个路径,然后就错了
在baseDir处,就跟官方一模一样,我手贱了,改了个路径,然后就错了

requestPayment:fail [payment微信:-1]General errors","errCode":-100,"code":-100}
真机调试,用微信支付,就会提示这个错误,网上找了资料,什么大小写问题,手机问题我都试了,还是不行,哪位大神支支招。
参数:
{
"appid": "wx7032730fcb17c56e",
"partnerid": "1577811751",
"prepayid": "wx22105109531204a857794a74ee940e0000",
"package": "Sign=WXPay",
"timestamp": "1624330269",
"noncestr": "lwt649nd4vjic0swhfvd6nf5kvm0z3bq",
"sign": "035772BE1D47641BBB06CF87B95C65FE"
}
真机调试,用微信支付,就会提示这个错误,网上找了资料,什么大小写问题,手机问题我都试了,还是不行,哪位大神支支招。
参数:
{
"appid": "wx7032730fcb17c56e",
"partnerid": "1577811751",
"prepayid": "wx22105109531204a857794a74ee940e0000",
"package": "Sign=WXPay",
"timestamp": "1624330269",
"noncestr": "lwt649nd4vjic0swhfvd6nf5kvm0z3bq",
"sign": "035772BE1D47641BBB06CF87B95C65FE"
}

自营商城的好处
什么是自营商城
简单地说,自营就是自己开店,比如用友好速搭、凡科这种电商平台给自己做个拥有独立域名的电商网站。
要解释清楚的话,就免不了再提一下淘宝,在淘宝开店就是非自营,你的流量基本上全靠淘宝发配,付款发货也是走的淘宝,而自营电商就是反过来,拥有大的自主权,对品牌建设很有好处。
很多个人或者企业在一些电商平台受到诸多限制,想要更快寻求发展,更好的扩大自己的品牌,让自己的品牌更加有影响力。
所以说自营商城可以大的得到自主权,想做什么做什么,只要有想法就可以自己实现,毕竟源码在自己手中,不必遵循其他平台的一些特殊的、不合理的需求。
不过自己也没有了背靠大树的便利,一切流量都需要自己去把握,自己去寻找,只要推广做的好,自营商城会让你得到比非自营更多的便利以及优势。
什么是自营商城
简单地说,自营就是自己开店,比如用友好速搭、凡科这种电商平台给自己做个拥有独立域名的电商网站。
要解释清楚的话,就免不了再提一下淘宝,在淘宝开店就是非自营,你的流量基本上全靠淘宝发配,付款发货也是走的淘宝,而自营电商就是反过来,拥有大的自主权,对品牌建设很有好处。
很多个人或者企业在一些电商平台受到诸多限制,想要更快寻求发展,更好的扩大自己的品牌,让自己的品牌更加有影响力。
所以说自营商城可以大的得到自主权,想做什么做什么,只要有想法就可以自己实现,毕竟源码在自己手中,不必遵循其他平台的一些特殊的、不合理的需求。
不过自己也没有了背靠大树的便利,一切流量都需要自己去把握,自己去寻找,只要推广做的好,自营商城会让你得到比非自营更多的便利以及优势。

video高度自适应--iOS
video默认有高度,又不能通过auto去处理。所以需要先获取视频宽高比例,在动态设置video的高度。代码如下:
uni.getVideoInfo({
src: that.vData.videoUrl,//视频链接
success(data) {
that.videoHeight = data.height / data.width * 100 + 'vw'
}
})
video默认有高度,又不能通过auto去处理。所以需要先获取视频宽高比例,在动态设置video的高度。代码如下:
uni.getVideoInfo({
src: that.vData.videoUrl,//视频链接
success(data) {
that.videoHeight = data.height / data.width * 100 + 'vw'
}
})

微信小程序商城有哪些优势
微信内多处入口随时随地发现您的商城
流量入口更丰富
购物订单全同步
公众号小程序商城一体化
分享途径多元化
打造社交营销系统
用户范围更广
消息统一化管理
符合大众用户习惯
微信内多处入口随时随地发现您的商城
流量入口更丰富
购物订单全同步
公众号小程序商城一体化
分享途径多元化
打造社交营销系统
用户范围更广
消息统一化管理
符合大众用户习惯

不必耗费精力维护那么多的qq群,支持的+1
看官方几十个QQ群 ,要维护这么多,得耗费多少精力,而对社区收益能有多少?实在得不偿失。
个人觉得不必耗费精力维护那么多的qq群,好好的优化下文档,让文档更清晰、更容易查找,比目前这一块那一堆的,一些重要问题都得在论坛里从千百篇回答里翻找半天,才能找到官方提供的解决要好的多。
官方精力不够,也可以招募下志愿者,对论坛上的提问及时进行回复。
目前这状态,感觉官方很傲娇。
支持的点下赞,让官方看到
看官方几十个QQ群 ,要维护这么多,得耗费多少精力,而对社区收益能有多少?实在得不偿失。
个人觉得不必耗费精力维护那么多的qq群,好好的优化下文档,让文档更清晰、更容易查找,比目前这一块那一堆的,一些重要问题都得在论坛里从千百篇回答里翻找半天,才能找到官方提供的解决要好的多。
官方精力不够,也可以招募下志愿者,对论坛上的提问及时进行回复。
目前这状态,感觉官方很傲娇。
支持的点下赞,让官方看到
收起阅读 »
input实时输入
<<< 几天前,在接到甲方要求说,手写输入要如下图(实时输入)显示:
因为现在大部分人都是用键盘,所以我们一般习惯输入完了以后在输入法中确认一下,才会输入到输入框。
这个时候我们看不出问题所在
因为甲方大部分是用 【手写 】 的,所以当我们采取以下策略的时候(此时会出现手写预输入的字不显示的问题)
一般在写input的时候是这样的:
<input @input="inputChange" :value="value" class="input"/>
...
value: "",
...
input(e) {
this.value = e.detail.value;
}
经测试可以看见当我们把input写成上面的时候就会发现,用键盘打字是会显示实时结果的,
但是当我们用手写的时候就发现预输入第一个字的时候(此时还没有确认那个字(处于预输入阶段)),
会发现我们就无法像抖音,百度,酷狗那样实时搜索,只能等到字被确认的时候才会显示出来。
<<<<<<<<< 于是百度了很多地方,大部分的解决办法都是https://www.cnblogs.com/pyspang/p/11402947.html
使用compositionstart、compositionend来解决。但是后面我发现这个方法只适用于html界面,并不适用于uniapp中的vue,
貌似uniapp官方已经封装了这个东西(因为在 vue 的关于input源码中是可以使用compositionstart、compositionend的,但是
在uniapp里面用不了)
。。。。过了比较久的时间都没有解决(期间想过用plus监听键盘按键值,但实际上根本监听不到,头疼)。。。。
《〈不久前突然想到了两个办法来解决手写的问题〉》
【第一种方法比较自由可以自由更改样式 】
【第二种方法,使用原生顶部搜索栏,不怎么自由,但是可以解决上面问题 】
第一种方法:(比较推荐)
我们可以这样写:
<template>
<view>
<input placeholder="请输入信息" v-model="inputValue" @input="inputChange" class="input"/>
<view/>
<template/>
<script>
export default {
data() {
return {
inputValue: ""
}
},
//采用监听
watch:{
//双向绑定
value(val) {
this.inputValue = val;
},
},
methods: {
inputChange(){
console.log(this.inputValue) //这个打印的值就是实时输入的值
//下面就可以处理实时输入的逻辑了
。。。。
},
}
}
<script/>
<style>
.input{
font-size: 20px;
}
</style>
第二种方法
第一步:配置pages.json
//在要配置的页面的style中写下如下内容
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"app-plus": {
"titleNView": {
"type": "default",//透明渐变导航栏 App-nvue 2.4.4 支持
"searchInput": {
"backgroundColor": "#fbfcff",
"borderRadius": "20px", //输入框圆角
"placeholder": "请输入搜索内容",
"disabled": false //disable时点击输入框不置焦,可以跳到新页面搜索
}
}
}
}
},
....
]
**第二步:在vue页面【script 】中写下**
<script>
export default {
data() {
return {
inputValue: ""
}
},
onNavigationBarSearchInputChanged(e) {
this.inputValue = e.text;
console.log(this.inputValue) //这个打印的值就是实时输入的值
//下面就可以处理实时输入的逻辑了
。。。。
}
。。。
}
<script/>
如上解决了实时输入中文带来的麻烦(特别是手写带来的麻烦,毕竟还有很多老年用户,细节、细节、细节)
<<< 几天前,在接到甲方要求说,手写输入要如下图(实时输入)显示:
因为现在大部分人都是用键盘,所以我们一般习惯输入完了以后在输入法中确认一下,才会输入到输入框。
这个时候我们看不出问题所在
因为甲方大部分是用 【手写 】 的,所以当我们采取以下策略的时候(此时会出现手写预输入的字不显示的问题)
一般在写input的时候是这样的:
<input @input="inputChange" :value="value" class="input"/>
...
value: "",
...
input(e) {
this.value = e.detail.value;
}
经测试可以看见当我们把input写成上面的时候就会发现,用键盘打字是会显示实时结果的,
但是当我们用手写的时候就发现预输入第一个字的时候(此时还没有确认那个字(处于预输入阶段)),
会发现我们就无法像抖音,百度,酷狗那样实时搜索,只能等到字被确认的时候才会显示出来。
<<<<<<<<< 于是百度了很多地方,大部分的解决办法都是https://www.cnblogs.com/pyspang/p/11402947.html
使用compositionstart、compositionend来解决。但是后面我发现这个方法只适用于html界面,并不适用于uniapp中的vue,
貌似uniapp官方已经封装了这个东西(因为在 vue 的关于input源码中是可以使用compositionstart、compositionend的,但是
在uniapp里面用不了)
。。。。过了比较久的时间都没有解决(期间想过用plus监听键盘按键值,但实际上根本监听不到,头疼)。。。。
《〈不久前突然想到了两个办法来解决手写的问题〉》
【第一种方法比较自由可以自由更改样式 】
【第二种方法,使用原生顶部搜索栏,不怎么自由,但是可以解决上面问题 】
第一种方法:(比较推荐)
我们可以这样写:
<template>
<view>
<input placeholder="请输入信息" v-model="inputValue" @input="inputChange" class="input"/>
<view/>
<template/>
<script>
export default {
data() {
return {
inputValue: ""
}
},
//采用监听
watch:{
//双向绑定
value(val) {
this.inputValue = val;
},
},
methods: {
inputChange(){
console.log(this.inputValue) //这个打印的值就是实时输入的值
//下面就可以处理实时输入的逻辑了
。。。。
},
}
}
<script/>
<style>
.input{
font-size: 20px;
}
</style>
第二种方法
第一步:配置pages.json
//在要配置的页面的style中写下如下内容
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"app-plus": {
"titleNView": {
"type": "default",//透明渐变导航栏 App-nvue 2.4.4 支持
"searchInput": {
"backgroundColor": "#fbfcff",
"borderRadius": "20px", //输入框圆角
"placeholder": "请输入搜索内容",
"disabled": false //disable时点击输入框不置焦,可以跳到新页面搜索
}
}
}
}
},
....
]
**第二步:在vue页面【script 】中写下**
<script>
export default {
data() {
return {
inputValue: ""
}
},
onNavigationBarSearchInputChanged(e) {
this.inputValue = e.text;
console.log(this.inputValue) //这个打印的值就是实时输入的值
//下面就可以处理实时输入的逻辑了
。。。。
}
。。。
}
<script/>
如上解决了实时输入中文带来的麻烦(特别是手写带来的麻烦,毕竟还有很多老年用户,细节、细节、细节)
收起阅读 »
农牧行业客户赋能平台建设外包(一期)
平台建设目标
客户(经销商客户和直供客户)赋能平台(以下简称“赋能平台”)旨在打造一个客户的全生命周期管理平台,从以往以“订单为中心“的经营方式,转变成“以客户为中心”的互联网理念,完成从“产品销售”理念到“经营客户”理念的转变。赋能平台在企业整个经营理念的转变过程中起到了至关重要的作用,决定了企业数字化转型的成败。赋能平台在整个转型过程中主要有2大目标:
-
目标一:建立跟客户的持久连接
通过各种手段与客户建立数字化连接, 与客户建立连接后,通过数字化的手段与客户保持频繁互动,从而持续增加客户的黏性和忠诚度,互动手段包括但不限于:在线下单、在线客服、在线培训、在线技术支持、在线实证数据分享、在线抽奖、在线发红包,以及各种买赠活动等等。 -
目标二:通过数字化的手段干预客户的预期和行为
与客户建立数字化连接后,在与客户的互动过程中,可以设计各种场景引导用户的消费行为, 比如可以设计这样一个场景:客户在线下单买了xxx产品,当客户完成支付行为后,系统可以弹出优惠页面,并允许用户做出二选一选择:1、本次下单立即获得100元的返利现金券;2、本次下单获得5个积分,但是累计10个积分可以获得一个最低200元,最高1000元的现金抽奖机会。选项2是我们期望用户的一个行为,他引导用户再次下单购买xxx产品,获得另外5个积分,从而获得200 ~ 1000元的现金奖励。
供应商在平台的设计和建设过程中,考虑的绝不仅仅是功能的堆砌,需要紧紧围绕平台的建设目标展开工作,所有的工作都应该以上述目标为出发点和落脚点。
整个平台的建设工作分2步走,第一步业主方触达它的直接客户,也就是产品A的规模化直供客户、产品A的经销商客户、产品B的省级代理、产品B的二级代理(一期);第二步业主方穿透它的经销商和代理商,直接触达他们的终端客户(二期)。这就要求在平台建设初期,需要从全局的角度去进行思考和设计。
本项目目前正准备建设一期,具体的项目需求详见附件。在项目的一期建设过程中, 又可以分为2个节点, 第一节点只需要上线一个简单的“买赠活动 + 在线下单”,主要实现用户的线上引流, 需求的其他部分可以在后续持续完善。
平台建设目标
客户(经销商客户和直供客户)赋能平台(以下简称“赋能平台”)旨在打造一个客户的全生命周期管理平台,从以往以“订单为中心“的经营方式,转变成“以客户为中心”的互联网理念,完成从“产品销售”理念到“经营客户”理念的转变。赋能平台在企业整个经营理念的转变过程中起到了至关重要的作用,决定了企业数字化转型的成败。赋能平台在整个转型过程中主要有2大目标:
-
目标一:建立跟客户的持久连接
通过各种手段与客户建立数字化连接, 与客户建立连接后,通过数字化的手段与客户保持频繁互动,从而持续增加客户的黏性和忠诚度,互动手段包括但不限于:在线下单、在线客服、在线培训、在线技术支持、在线实证数据分享、在线抽奖、在线发红包,以及各种买赠活动等等。 -
目标二:通过数字化的手段干预客户的预期和行为
与客户建立数字化连接后,在与客户的互动过程中,可以设计各种场景引导用户的消费行为, 比如可以设计这样一个场景:客户在线下单买了xxx产品,当客户完成支付行为后,系统可以弹出优惠页面,并允许用户做出二选一选择:1、本次下单立即获得100元的返利现金券;2、本次下单获得5个积分,但是累计10个积分可以获得一个最低200元,最高1000元的现金抽奖机会。选项2是我们期望用户的一个行为,他引导用户再次下单购买xxx产品,获得另外5个积分,从而获得200 ~ 1000元的现金奖励。
供应商在平台的设计和建设过程中,考虑的绝不仅仅是功能的堆砌,需要紧紧围绕平台的建设目标展开工作,所有的工作都应该以上述目标为出发点和落脚点。
整个平台的建设工作分2步走,第一步业主方触达它的直接客户,也就是产品A的规模化直供客户、产品A的经销商客户、产品B的省级代理、产品B的二级代理(一期);第二步业主方穿透它的经销商和代理商,直接触达他们的终端客户(二期)。这就要求在平台建设初期,需要从全局的角度去进行思考和设计。
本项目目前正准备建设一期,具体的项目需求详见附件。在项目的一期建设过程中, 又可以分为2个节点, 第一节点只需要上线一个简单的“买赠活动 + 在线下单”,主要实现用户的线上引流, 需求的其他部分可以在后续持续完善。
收起阅读 »
男子开发爬虫软件窃取淘宝11亿条用户隐私,被判三年三个月
近日,裁判文书网上的一起“侵犯公民个人信息罪”案件引发关注。判决书显示,被告人逯某爬取淘宝客户信息共计11亿余条,之后将客户手机号码提供给被告人黎某用于商业营销,共获利34万元。
判决结果显示,黎某犯侵犯公民个人信息罪,判处有期徒刑三年六个月,并处罚金人民币35万元;逯某犯侵犯公民个人信息罪,判处有期徒刑三年三个月,并处罚金人民币十万元。

图:中国裁判文书网截图。
南都记者梳理发现,多家大数据公司被查原因都曾与“爬虫”相关,而关于合理爬虫的边界也屡屡引发热议。有专家表示,当大数据公司运用爬虫技术严重侵犯了其他人的合法利益,才是被罚甚至失去自由的根本原因。
淘宝11亿数据被爬取,含手机号
6月3日,中国裁判文书网公布一份判决书——《逯某、黎某侵犯公民个人信息一审刑事判决书》。判决书显示,河南商丘睢阳区检察院指控被告人逯某、黎某涉嫌侵犯公民个人信息罪,于2021年1月14日向河南商丘睢阳区法院(以下简称“睢阳法院”)提起公诉。
经司法鉴定,逯某通过其开发的软件爬取淘宝客户的数字ID、淘宝昵称、手机号码等淘宝客户信息共计11亿余条,逯某将其爬取信息中的淘宝客户手机号码通过微信文件的形式发送给黎某使用共计1971万余条。
睢阳法院经审理查明,黎某成立了浏阳市泰创网络科技有限公司(以下简称“泰创公司”),该公司设有返利部、客服部、招商部等部门。逯某受雇于黎某,作为公司技术员,每月工资一万元。工商信息显示,泰创公司成立于2018年1月15日,经营范围为软件开发、大数据处理技术的研究与开发、数据及信息资料的处理和保管等。
上述法院经查,自2019年11月,逯某将爬取到的淘宝客户的手机号码提供给黎某,用于泰创公司的经营活动,该公司自2019年11月至2020年7月利用该信息经营共获利34万余元。
逯某辩称,他只采集了五千万条信息,11亿余条是他从其他地方下载的。
睢阳法院认为,淘宝公司报警称,自2020年7月6日至7月13日每天被侵犯信息都有500万条,逯某供述其自2019年11月开始爬取淘宝信息的,在提取逯某电脑硬盘检测有11亿多条信息,两证据能相互印证逯某采集的信息数量。因此,对于逯某关于采集信息数量的辩解,法院不予采信。
被告人逯某、黎某被判侵犯公民个人信息罪
淘宝网安全风控员马某证言证实,2020年7月13日,其在工作中发现有黑产通过破解接口的形式进行加密数据的爬取,在2020年7月13日至20日之间爬取了3500万条数据。
黎某供述与辩解称,在2019年底,逯某通过技术手段爬取淘宝网里的淘宝客户信息后,不定时的通过微信文件把公司需要的淘宝客户手机号码直接发送给他。之后,他会把这些数据导入“微信加人”软件,加微信好友成功后,由泰创公司员工负责发送广告链接,淘宝用户在该公司的广告群里购买东西,该公司获得佣金。
睢阳法院认为,逯某虽是受雇于黎某,但信息是由逯某直接爬取,将其中一部分手机号提供给黎某用于公司经营活动,其在共同犯罪中并不起次要或辅助作用,不属从犯。
《中华人民共和国刑法》规定,违反国家有关规定,向他人出售或者提供公民个人信息,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。
根据两高《关于办理侵犯公民个人信息刑事案件适用法律若干问题的解释》,非法获取、出售或者提供行踪轨迹信息、通信内容、征信信息、财产信息50条以上即为“情节严重”。
最终,法院判决结果显示,黎某犯侵犯公民个人信息罪,判处有期徒刑三年六个月,并处罚金人民币35万元;逯某犯侵犯公民个人信息罪,判处有期徒刑三年三个月,并处罚金人民币十万元。
多家大数据公司被查原因曾与“爬虫”相关
南都记者梳理发现,多家大数据公司被查原因都与“网络爬虫抓取数据”相关。
2019年8月,据新京报报道,大数据营销系统“鹰眼智客”利用爬虫技术,从淘宝、京东等网站上爬取到店家手机号后,用于营销。此外,借助该软件,通过微信附近的人,用户可任意设定虚拟位置后批量申请好友,还能“站街”钓鱼营销。其后,鹰眼智客所属的郑州共赢科技有限公司接受警方调查。
据南都此前报道,2019年9月前后,多家数据公司接连被查,包括魔蝎科技、还包括聚信立、新颜科技、公信宝、同盾等。从事金融科技行业多年的资深人士曾告诉南都记者,被查原因很可能与违规使用爬虫数据以及暴力催收有关。
今年年初,魔蝎科技相关案件迎来一审判决。判决结果显示,魔蝎科技犯侵犯公民个人信息罪,判处罚金三千万元。公司法人周某某被判有期徒刑三年,缓刑四年;技术总监袁某被判有期徒刑三年,缓刑三年。
网络爬虫原本是指平台按照一定规则,自动从互联网上提取网络信息的程序或脚本,本为互联网行业的常用技术之一。但近年来,爬虫技术往往被应用于“套路贷”“暴力催收”以及“侵犯个人信息权益的商业营销”上,而被推上风口浪尖。
北京市安理律师事务所高级合伙人王新锐、罗为曾公开撰文表示,创新型业务很容易进入法律的灰色地带,但仅仅进入灰色地带本身,并不会直接招致处罚,严重侵犯了其他人的合法利益,才是被罚甚至失去自由的根本原因。
【转自:生活报】,声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 邮箱地址:pufa@dcloud.io 。
近日,裁判文书网上的一起“侵犯公民个人信息罪”案件引发关注。判决书显示,被告人逯某爬取淘宝客户信息共计11亿余条,之后将客户手机号码提供给被告人黎某用于商业营销,共获利34万元。
判决结果显示,黎某犯侵犯公民个人信息罪,判处有期徒刑三年六个月,并处罚金人民币35万元;逯某犯侵犯公民个人信息罪,判处有期徒刑三年三个月,并处罚金人民币十万元。
图:中国裁判文书网截图。
南都记者梳理发现,多家大数据公司被查原因都曾与“爬虫”相关,而关于合理爬虫的边界也屡屡引发热议。有专家表示,当大数据公司运用爬虫技术严重侵犯了其他人的合法利益,才是被罚甚至失去自由的根本原因。
淘宝11亿数据被爬取,含手机号
6月3日,中国裁判文书网公布一份判决书——《逯某、黎某侵犯公民个人信息一审刑事判决书》。判决书显示,河南商丘睢阳区检察院指控被告人逯某、黎某涉嫌侵犯公民个人信息罪,于2021年1月14日向河南商丘睢阳区法院(以下简称“睢阳法院”)提起公诉。
经司法鉴定,逯某通过其开发的软件爬取淘宝客户的数字ID、淘宝昵称、手机号码等淘宝客户信息共计11亿余条,逯某将其爬取信息中的淘宝客户手机号码通过微信文件的形式发送给黎某使用共计1971万余条。
睢阳法院经审理查明,黎某成立了浏阳市泰创网络科技有限公司(以下简称“泰创公司”),该公司设有返利部、客服部、招商部等部门。逯某受雇于黎某,作为公司技术员,每月工资一万元。工商信息显示,泰创公司成立于2018年1月15日,经营范围为软件开发、大数据处理技术的研究与开发、数据及信息资料的处理和保管等。
上述法院经查,自2019年11月,逯某将爬取到的淘宝客户的手机号码提供给黎某,用于泰创公司的经营活动,该公司自2019年11月至2020年7月利用该信息经营共获利34万余元。
逯某辩称,他只采集了五千万条信息,11亿余条是他从其他地方下载的。
睢阳法院认为,淘宝公司报警称,自2020年7月6日至7月13日每天被侵犯信息都有500万条,逯某供述其自2019年11月开始爬取淘宝信息的,在提取逯某电脑硬盘检测有11亿多条信息,两证据能相互印证逯某采集的信息数量。因此,对于逯某关于采集信息数量的辩解,法院不予采信。
被告人逯某、黎某被判侵犯公民个人信息罪
淘宝网安全风控员马某证言证实,2020年7月13日,其在工作中发现有黑产通过破解接口的形式进行加密数据的爬取,在2020年7月13日至20日之间爬取了3500万条数据。
黎某供述与辩解称,在2019年底,逯某通过技术手段爬取淘宝网里的淘宝客户信息后,不定时的通过微信文件把公司需要的淘宝客户手机号码直接发送给他。之后,他会把这些数据导入“微信加人”软件,加微信好友成功后,由泰创公司员工负责发送广告链接,淘宝用户在该公司的广告群里购买东西,该公司获得佣金。
睢阳法院认为,逯某虽是受雇于黎某,但信息是由逯某直接爬取,将其中一部分手机号提供给黎某用于公司经营活动,其在共同犯罪中并不起次要或辅助作用,不属从犯。
《中华人民共和国刑法》规定,违反国家有关规定,向他人出售或者提供公民个人信息,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。
根据两高《关于办理侵犯公民个人信息刑事案件适用法律若干问题的解释》,非法获取、出售或者提供行踪轨迹信息、通信内容、征信信息、财产信息50条以上即为“情节严重”。
最终,法院判决结果显示,黎某犯侵犯公民个人信息罪,判处有期徒刑三年六个月,并处罚金人民币35万元;逯某犯侵犯公民个人信息罪,判处有期徒刑三年三个月,并处罚金人民币十万元。
多家大数据公司被查原因曾与“爬虫”相关
南都记者梳理发现,多家大数据公司被查原因都与“网络爬虫抓取数据”相关。
2019年8月,据新京报报道,大数据营销系统“鹰眼智客”利用爬虫技术,从淘宝、京东等网站上爬取到店家手机号后,用于营销。此外,借助该软件,通过微信附近的人,用户可任意设定虚拟位置后批量申请好友,还能“站街”钓鱼营销。其后,鹰眼智客所属的郑州共赢科技有限公司接受警方调查。
据南都此前报道,2019年9月前后,多家数据公司接连被查,包括魔蝎科技、还包括聚信立、新颜科技、公信宝、同盾等。从事金融科技行业多年的资深人士曾告诉南都记者,被查原因很可能与违规使用爬虫数据以及暴力催收有关。
今年年初,魔蝎科技相关案件迎来一审判决。判决结果显示,魔蝎科技犯侵犯公民个人信息罪,判处罚金三千万元。公司法人周某某被判有期徒刑三年,缓刑四年;技术总监袁某被判有期徒刑三年,缓刑三年。
网络爬虫原本是指平台按照一定规则,自动从互联网上提取网络信息的程序或脚本,本为互联网行业的常用技术之一。但近年来,爬虫技术往往被应用于“套路贷”“暴力催收”以及“侵犯个人信息权益的商业营销”上,而被推上风口浪尖。
北京市安理律师事务所高级合伙人王新锐、罗为曾公开撰文表示,创新型业务很容易进入法律的灰色地带,但仅仅进入灰色地带本身,并不会直接招致处罚,严重侵犯了其他人的合法利益,才是被罚甚至失去自由的根本原因。
【转自:生活报】,声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 邮箱地址:pufa@dcloud.io 。
收起阅读 »
5+APP,使用HbuilderX打包,plus.runtime.openURL(),IOS无法打开到指定的APP下载地址
plus.runtime.openURL(encodeURI('itms-apps://apps.apple.com/cn/app/鹏城老兵/id1568236759'))
IOS要求比较严格,需要用encodeURI转一下地址
参考:https://blog.csdn.net/weixin_43604585/article/details/107936245
plus.runtime.openURL(encodeURI('itms-apps://apps.apple.com/cn/app/鹏城老兵/id1568236759'))
IOS要求比较严格,需要用encodeURI转一下地址
参考:https://blog.csdn.net/weixin_43604585/article/details/107936245
收起阅读 »
一种避免页面来回跳转的解决方法
一、问题背景:
两个页面多次来回点击后循环跳转,返回时会一层一层返回重复的页面,想避免这种情况,在安卓中可以设置页面的启动模式,uniapp我不知道有没有设置启动模式这种方法。
1、与别人的聊天页面可以点击头像跳转个人主页,个人主页中也可以点击聊天进入和他的聊天页面。设聊天页面为a页面,个人主页为b页面。
2、应用中可以从某个不确定页面跳转到a,再从a到b...(情况一),也可以从某个不确定页面先跳转到b,再跳转到a....(情况二)。
二、两种情况的预期效果:
情况一:c a b a b a ==> c a b
从c跳转到a,再到b,再到a b a ....循环跳转后,如果当前在a页面时,点击返回回到c,如果当前在b页面,点击返回回到a,再点返回回到c。
情况二:d b a b a b ==> d b a
从d跳转到b,再到a,再到b a b ....循环跳转后,如果当前在b页面时,点击返回回到d,如果当前在a页面,点击返回回到b,再点返回回到d。
三、分析:
通过getCurrentPages()判页面栈里的页面,
在a页面中:判断栈中如果a页面先进来,b页面再进来,就是情况一,此时a到b,就用uni.navigateTo正常跳(如果此时栈中还没有b,也是此方法)。如果栈中是b页面先进来,a页面再进来,就是情况二,此时a到b,就用uni.navigateBack返回的方式实现页面切换。
在b页面中:同上分析
四、解决方法:
在a页面:a跳b时(没有b是正常跳b):如果第一个a在第一个b前面,就是一,正常跳,如果第一个a在第一个b后面,就是二,直接返回。
在b页面:b跳a时(没有a是正常跳a):如果第一个b在第一个a前面,就是二,正常跳,如果第一个b在第一个a后面,就是一,直接返回
五、其他:
也可以通过从不同页面传递一个变量到a、b中区分这两种情况,然后执行不同的跳转,但我觉得这还得去修改其他页面,不利于扩展。就直接改这两个页面,不用动其他页面。
但官方文档建议:
注意: getCurrentPages()仅用于展示页面栈的情况,请勿修改页面栈,以免造成页面状态错误。
用了下感觉没啥问题就先这样用了。
六、代码:
聊天页面:
//去个人主页
toPerson(user){
//获取页面栈中所有页面
let pages = getCurrentPages()
//如果想打印直接这样打印,不要加什么拼接字符串、JSON.stringify()什么的
console.log(getCurrentPages());
//栈中页面的路径单独保存为数组,方便后续比较
let pageUrl = []
for (let i = 0; i < pages.length; i++) {
//pages[i].$page.fullPath 是页面的全路径,会连页面传递的参数都打印出来,不方便后续比较
// console.log("第"+i+"个页面 = " + pages[i].$page.fullPath);
console.log("第"+i+"个页面 = " + pages[i].route);
//用pages[i].route就比较单纯了
pageUrl.push(pages[i].route)
}
//获取a、b页面第一次入栈的位置
let first_a = pageUrl.indexOf("pages/home/chat")//聊天页面
let first_b = pageUrl.indexOf("pages/mine/person_center")//个人主页
if (first_b < 0) {
console.log("没有b是正常跳b");
uni.navigateTo({
url: '../mine/person_center?user=' + JSON.stringify(user)//业务逻辑跳转传的参数
})
} else {
if (first_a < first_b) {
console.log("正常跳 b ");
uni.navigateTo({
url: '../mine/person_center?user=' + JSON.stringify(user)//业务逻辑跳转传的参数
})
} else {
console.log("返回 b");
uni.navigateBack({
delta: 1
})
}
}
},
个人主页:
//去聊天页面
toChat() {
//获取页面栈中所有页面
let pages = getCurrentPages()
//如果想打印直接这样打印,不要加什么拼接字符串、JSON.stringify()什么的
console.log(getCurrentPages());
//栈中页面的路径单独保存为数组,方便后续比较
let pageUrl = []
for (let i = 0; i < pages.length; i++) {
//pages[i].$page.fullPath 是页面的全路径,会连页面传递的参数都打印出来,不方便后续比较
// console.log("第"+i+"个页面 = " + pages[i].$page.fullPath);//会带参数
console.log("第"+i+"个页面 = " + pages[i].route);
//用pages[i].route就比较单纯了
pageUrl.push(pages[i].route)
}
//获取a、b页面第一次入栈的位置
let first_a = pageUrl.indexOf("pages/home/chat")//聊天页面
let first_b = pageUrl.indexOf("pages/mine/person_center")//个人主页
if (first_a < 0) {
console.log("没有a是正常跳a");
uni.navigateTo({
url: '../home/chat?user=' + JSON.stringify(this.user)//业务逻辑跳转传的参数
})
} else {
if (first_b < first_a) {
console.log("正常跳 a ");
uni.navigateTo({
url: '../home/chat?user=' + JSON.stringify(this.user)//业务逻辑跳转传的参数
})
} else {
console.log("返回 a");
uni.navigateBack({
delta: 1
})
}
}
一、问题背景:
两个页面多次来回点击后循环跳转,返回时会一层一层返回重复的页面,想避免这种情况,在安卓中可以设置页面的启动模式,uniapp我不知道有没有设置启动模式这种方法。
1、与别人的聊天页面可以点击头像跳转个人主页,个人主页中也可以点击聊天进入和他的聊天页面。设聊天页面为a页面,个人主页为b页面。
2、应用中可以从某个不确定页面跳转到a,再从a到b...(情况一),也可以从某个不确定页面先跳转到b,再跳转到a....(情况二)。
二、两种情况的预期效果:
情况一:c a b a b a ==> c a b
从c跳转到a,再到b,再到a b a ....循环跳转后,如果当前在a页面时,点击返回回到c,如果当前在b页面,点击返回回到a,再点返回回到c。
情况二:d b a b a b ==> d b a
从d跳转到b,再到a,再到b a b ....循环跳转后,如果当前在b页面时,点击返回回到d,如果当前在a页面,点击返回回到b,再点返回回到d。
三、分析:
通过getCurrentPages()判页面栈里的页面,
在a页面中:判断栈中如果a页面先进来,b页面再进来,就是情况一,此时a到b,就用uni.navigateTo正常跳(如果此时栈中还没有b,也是此方法)。如果栈中是b页面先进来,a页面再进来,就是情况二,此时a到b,就用uni.navigateBack返回的方式实现页面切换。
在b页面中:同上分析
四、解决方法:
在a页面:a跳b时(没有b是正常跳b):如果第一个a在第一个b前面,就是一,正常跳,如果第一个a在第一个b后面,就是二,直接返回。
在b页面:b跳a时(没有a是正常跳a):如果第一个b在第一个a前面,就是二,正常跳,如果第一个b在第一个a后面,就是一,直接返回
五、其他:
也可以通过从不同页面传递一个变量到a、b中区分这两种情况,然后执行不同的跳转,但我觉得这还得去修改其他页面,不利于扩展。就直接改这两个页面,不用动其他页面。
但官方文档建议:
注意: getCurrentPages()仅用于展示页面栈的情况,请勿修改页面栈,以免造成页面状态错误。
用了下感觉没啥问题就先这样用了。
六、代码:
聊天页面:
//去个人主页
toPerson(user){
//获取页面栈中所有页面
let pages = getCurrentPages()
//如果想打印直接这样打印,不要加什么拼接字符串、JSON.stringify()什么的
console.log(getCurrentPages());
//栈中页面的路径单独保存为数组,方便后续比较
let pageUrl = []
for (let i = 0; i < pages.length; i++) {
//pages[i].$page.fullPath 是页面的全路径,会连页面传递的参数都打印出来,不方便后续比较
// console.log("第"+i+"个页面 = " + pages[i].$page.fullPath);
console.log("第"+i+"个页面 = " + pages[i].route);
//用pages[i].route就比较单纯了
pageUrl.push(pages[i].route)
}
//获取a、b页面第一次入栈的位置
let first_a = pageUrl.indexOf("pages/home/chat")//聊天页面
let first_b = pageUrl.indexOf("pages/mine/person_center")//个人主页
if (first_b < 0) {
console.log("没有b是正常跳b");
uni.navigateTo({
url: '../mine/person_center?user=' + JSON.stringify(user)//业务逻辑跳转传的参数
})
} else {
if (first_a < first_b) {
console.log("正常跳 b ");
uni.navigateTo({
url: '../mine/person_center?user=' + JSON.stringify(user)//业务逻辑跳转传的参数
})
} else {
console.log("返回 b");
uni.navigateBack({
delta: 1
})
}
}
},
个人主页:
//去聊天页面
toChat() {
//获取页面栈中所有页面
let pages = getCurrentPages()
//如果想打印直接这样打印,不要加什么拼接字符串、JSON.stringify()什么的
console.log(getCurrentPages());
//栈中页面的路径单独保存为数组,方便后续比较
let pageUrl = []
for (let i = 0; i < pages.length; i++) {
//pages[i].$page.fullPath 是页面的全路径,会连页面传递的参数都打印出来,不方便后续比较
// console.log("第"+i+"个页面 = " + pages[i].$page.fullPath);//会带参数
console.log("第"+i+"个页面 = " + pages[i].route);
//用pages[i].route就比较单纯了
pageUrl.push(pages[i].route)
}
//获取a、b页面第一次入栈的位置
let first_a = pageUrl.indexOf("pages/home/chat")//聊天页面
let first_b = pageUrl.indexOf("pages/mine/person_center")//个人主页
if (first_a < 0) {
console.log("没有a是正常跳a");
uni.navigateTo({
url: '../home/chat?user=' + JSON.stringify(this.user)//业务逻辑跳转传的参数
})
} else {
if (first_b < first_a) {
console.log("正常跳 a ");
uni.navigateTo({
url: '../home/chat?user=' + JSON.stringify(this.user)//业务逻辑跳转传的参数
})
} else {
console.log("返回 a");
uni.navigateBack({
delta: 1
})
}
}
收起阅读 »

uni.app 通过vue.config.js 实现.less文件的全局引入
并不是自己想要用less,我项目里面用的是scss,之前偶尔听朋友讲起,然后自己也百度了很多,也看了些帖子,基本都挨个儿试过了,都不行,后来终于知道vue.config.js这个怎么配置了。希望对在找这个的有点帮助。
let path = require('path');
let vars = path.resolve(__dirname, '你的.less文件的路径')
module.exports = {
css: {
loaderOptions: {
less: {
javascriptEnabled: true,
modifyVars: {
'hack': `true; @import "${vars}";`
}
}
}
}
}
并不是自己想要用less,我项目里面用的是scss,之前偶尔听朋友讲起,然后自己也百度了很多,也看了些帖子,基本都挨个儿试过了,都不行,后来终于知道vue.config.js这个怎么配置了。希望对在找这个的有点帮助。
let path = require('path');
let vars = path.resolve(__dirname, '你的.less文件的路径')
module.exports = {
css: {
loaderOptions: {
less: {
javascriptEnabled: true,
modifyVars: {
'hack': `true; @import "${vars}";`
}
}
}
}
}
收起阅读 »