;

整个流程涉及两次文件验证,各种平台密钥及id,账号关联操作,所用验证文件需放入自己的服务器对应目录 微信支付:https://pay.weixin.qq.com 1.商户号 2.获取api秘钥(私钥,自己本地生成后设置上去) 3.设置支付回调 4.账号关联,通过小程序AppID关联(产品中心-开发设置-APPID授权管理,关联小程序AppID) 5.生成支付相关的验证文件,微信支付商户平台证书,放入网站相关目录 /www/wwwroot/0915www.abc.cn/ThinkPHP/Library/Vendor/WxPay/lib/cert/ 微信公众平台:https://mp.weixin.qq.com 1.开发者ID(AppID) 2.开发者密码(AppSecret) 微信开放平台:https://open.weixin.qq.com 绑定小程序 小程序后台:https://mp.weixin.qq.com 1.AppID(小程序ID) 2.AppSecret(小程序密钥) request合法域名中需要加入https://api.mch.weixin.qq.com, 业务域名配置作用可以打开web-view标签链接,此时需要验证域名合法,将验证文件放入网站根目录 各种信息汇总 //微信公众平台: wxacd22e1524f32019 /…

微信小程序接入支付流程 2019年9月29日
;

“修昔底德陷阱”,指一个新崛起的大国必然要挑战现存大国,而现存大国也必然会回应这种威胁,这样战争变得不可避免。此说法源自古希腊著名历史学家修昔底德,他认为,当一个崛起的大国与既有的统治霸主竞争时,双方面临的危险多数以战争告终。

修昔底德陷阱 2019年9月27日
;

1.问题描述 代码调试,在ajax一返回立马打印,发现结果竟然是后续处理过后的 2.伪代码复现 var array = [1,2]; var obj = { a: 1, b: [1,2] } console.log(array); //[1, 2] 误,外部显示的[1, 2],点开箭头显示的[1,2,3] console.log(obj); //{a:1,b:[1,2,3]} array.push(3); obj.b.push(3); console.log(array); //[1,2,3] console.log(obj); //{a:1,b:[1,2,3]} 更正:打印结果中带三角箭头的地方需要展开查看最终结果,外部显示可能并不一致 3.产生原因 对象保存的是地址,引用同一片内存空间,后面发生改变,也会影响打印出来的值。 但凡是有个箭头出来的,可以认为是一个对象了,所以数值是实时的。三角形点开的时候才会拿着内存地址去取对象的值。 而你查看的时候,对象里的内容已经被改过了。所以这个直接log 对象或者数组的方式,并不能很好的体现内部值的一个实时性。 4.猜想 把push放入setTimeout延时5秒会怎样? var array = [1,2]; var obj = { a: 1, b: [1,2] } console.log(array…

console打印数据,发现打印结果并非初始ajax返回的值 2019年9月25日
;

1.父页面 Model.prototype.modelLoad = function(event){ window.callbroadcaster(‘123’); } 2.子页面 Model.prototype.modelLoad = function(event){ var $this = this; window.callbroadcaster = function(e){ $this.getGoodsFromCode(e); } }

wex5主页面触发子页面事件 2019年9月25日
;

1.问题快照 2.原因 查看本机ip发现变掉了 3.解决方案 重新打包即可

wex5真机调试报错‘UIServer错误’ 2019年9月25日
;

1.故事艺术中的3个极端形式(大情节、小情节、反情节)为故事宇宙勾画出一副三角形地图,将故事显现出的各种形式的可能性囊括其中。 2.经典设计(大情节):超越时间的原理,围绕一个主人公构建的故事,主人公为了追求自己的欲望,与主要来自外界的对抗力量进行抗争,通过连续的时间、在一个连贯而具有因果关联的虚构现实里,到达一个表现绝对、而变化不可逆转的闭合式结局。 如:《火车大劫案》、《贪婪》、《战舰波将金号》、《M就是凶手》、《公民凯恩》、《七武士》、《第七封印》、《江湖浪子》、《2001:太空漫游》、《教父2》、《销魂三人组》、《一条叫旺达的鱼》等各种题材和故事类型的电影。 3.小情节:对大情节的突出特性进行精炼、浓缩与修剪,在简约、精炼的前提下保持经典的精华,像大情节一样给予精美的处理,使影片仍然能够满足观众的期待:“多好的故事!”。 如:《北方的纳努科》、《战火》、《红色沙漠》、《温柔的怜悯》、《征服者佩尔》、《盗窃童心》、《大河恋》、《福利》(叙事性纪录片)等。 4.反情节:反,即反其道而行,否认传统形式,倾向于过度铺陈和自我意识的大肆渲染。 如:《一条安达鲁狗》、《午后的迷惘》、《八部半》、《假面》、《反斗智多星》等。 【每日一句】 作家的全部宇宙论,他们对现实和人生真谛所包罗万象的观点和看法,都包含在这个三角形里。要想理解你在这一宇宙中的位…

大情节 小情节 反情节 2019年9月24日
;

1.入口页面,通常是index 2.创建data组件,添加字段,并设置默认值 model添加onLoad事件 3.html部分 <div component="$UI/system/components/justep/model/model" xid="model" style="height:auto;left:390px;top:161px;" onload="modelLoad"> <div component="$UI/system/components/justep/data/data" autoload="true" xid="commonData" idcolumn="id"> <column iscalculate="false" name="id" type="String" xid="xid2"></column> <column label="show" name="show" type=&q…

wex5中定义全局data组件 2019年9月24日
;

戏剧理论(dramaturgical )亦称“拟剧论”。是用表演说明日常生活中人与人之间相互作用的一种符号互动理论。主要代表人物是戈夫曼。把社会比作舞台.把全体社会成员比作在这一舞台上扮演不同角色的演员。认为他们在社会互动中表现自己。努力把握自己给他人造成的印象,使自身的形象能最好地为自己要达到的目的服务。 戏剧理论介绍 戈夫曼(E.Goffman)采用戏剧分析的方法,从印象管理的角度来揭示社会互动的特点。他的理论主要研究人们运用哪些技巧来在别人心目中创造形象,所以又称“印象管理理论”或“印象整饰理论”。 这一理论认为,互动中的一方总想控制对方的行为,使对方通过对自己的理解,做出符合自己计划的行为反应。 戏剧理论的基本观点是:社会是一个舞台,全体社会成员是在这个舞台上扮演不同角色的演员,他们都在社会互动中表演自己,塑造自己的形象并更好地表达自己的目的。 戈夫曼的戏剧分析理论以个人运用符号的能力为出发点,强调个人内部对话的主观评价的社会的自我,重视符号在互动中的作用,将人们之间的符号互动看作是一门表演艺术,它要研究的实际是个体在社会中的一种互动。 主要思想编辑 1、根据人际互动的场合可以将互动分为两种: 社会机构内经常和持续性的互动;没有界限和临时性的互动。 2、社会机构好比一个舞台,人们的社会行为就是社会表演,人们在互动过程中按一定的常规程序…

戏剧理论 2019年9月22日
;

https://blog.csdn.net/HuangsTing/article/details/88578992 页面交互

wex5获取list中某列值以及页面传参 2019年9月19日
;

1.首先搭建页面框架,创建w文件,并常见main.w 2.在main.w添加contents组件,根据导航个数添加content组件 3.在main.w中的bottom中添加buttonGroup组件,并添加button组件 4.在button组件中修改导航名称和添加icon 5.绑定组件与content的对应关系,用target关联关系 注意节点之间的层级关系很重要,四个并列content的父及和父父级都是content如果缺少某一层就会导致切换失效 来源:https://blog.csdn.net/wjm0519/article/details/80581520

wex5底部tab导航 2019年9月19日
;

1.安装java8环境, java -version // 查看java是否已安装 sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jdk 参考资料:https://www.cnblogs.com/wxishang1991/p/5662499.html 备注:此处ubantu版本为14.04,历经波折oracle版本始终无法安装成功 2.安装Jenkins wget -q -O – https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add – 打开文件/etc/apt/sources.list添加deb https://pkg.jenkins.io/debian-stable binary/ 然后执行如下命令 sudo apt-get update sudo apt-get install jenkins 参考资料:https://pkg.jenkins.io/debian-stable/ 3.配置 打开域名:8080按照提提操作 4.启动 service jenkins start service jenkins rest…

ubantu下安装Jenkins 2019年9月13日
;

1.注意点 小程序中定时器在页面切换时候并不会中断,后台会持续叠加请求,因此在页面销毁和隐藏时候需要中断循环,此处通过设置一个全局的标志位来处理 2.代码 data: { timerContinue: true }, // 点击左上角返回时候触发 onUnload: function () { this.data.timerContinue = false }, // 按系统home键返回时候触发 onHide: function () { this.data.timerContinue = false }, onShow: function () { this.data.timerContinue = true // 如果在tab对应的页面中,每次进入需要重新启动循环 this.updateEndTime(23,59,59) }, updateEndTime: function (_hour, _minute, _second) {  //当前时间,距1970年1月1日的秒数 //通过返回的小时及分钟生成对应的日期对象 var now = new Date() var end = new Date() end.setHours(_hour) end.setMinutes(_minute) end.setSeconds(_second) //…

小程序中倒计时处理 2019年9月9日
;

1.安装git apt-get -y install git 2.下载Gitea wget -O gitea https://dl.gitea.io/gitea/1.4.0/gitea-1.4.0-linux-amd64 chmod +x gitea //设置执行权限 ./gitea web 备注:以上命令在自己退出登录的时候自动关闭 gitea 如果需要一直在后台开启请看下面的命令 nohup ./gitea web & 3.安装Gitea 域名:3000进入引导安装页面,配置好数据库,及管理员信息。 4.大功告成 ubantu相关知识: apt-get install安装目录是包的维护者确定的,不是用户 apt-get 下载后,软件所在路径是什么? /var/cache/apt/archives 参考链接:https://blog.swing1993.cn/%e5%ae%89%e8%a3%85gitea/

ubantu下安装gitea 2019年9月8日
;

1,问题描述 用户通过分享进入商品详情页,此时小程序底部没有tab切换菜单,同时没有直观的按钮跳转到首页,左上角也没有返回上一页箭头,此时如果用户点击系统的Home返回键会退出小程序 2. 另一个问题 用户从上一步退出后,从小程序的最近使用下面再次进入,依然是刚刚退出的页面,没有直观的办法触达其它页面 3. 解决思路 首先想到通过场景值来做业务判断 4.场景值相关知识 app.js文件中 onShow: function (e) { console.log(e.scene) }, onLaunch: function (e) { console.log(e.scene) }, page页面中获取 onShow: function (e) { let val = wx.getLaunchOptionsSync() console.log(val.scene) }, 经过一番尝试发现,这个场景值只在小程序初次载入时候能获取到,用户如果刚刚打开过小程序,然后又通过别人分享到达商品页,此时的场景值是自己上次载入时候的值,所以这时候场景值并不能作为用户来源的依据 5.换个思路 既然场景值无法用,想到从路由列表入手,分享进入的用户,历史路由里只有唯一的一个当前页路由,这也是没有左上角返回按钮的原因所在,如果路由表长度为1,那么就显示一个跳转到首页的按钮出…

小程序中通过分享链接进入的用户如何有效触达其它页面? 2019年9月4日
;

1.业务描述 通过微信支付开通vip,判断信息更新后再跳转 2.产生问题 通过setTimeout进行间隔一秒发送请求,数据比较,成功更新后通过wx.navigateTo跳转,此时setTimeout依然在后台持续调用 3.解决思路 setTimeout在每次调用后将生成一个标识符,而且每次都不同,所以用一个数组来保存起来,同时在页面离开时候清除所有的定时器 4.代码 data: { oldVal: ”, timeList: [] }, onLoad: function(options) { this.pay() }, // 点击左上角返回箭头时候触发 onUnload: function(options) { for (let i = 0; i < this.data.timeList.length; i++) { clearTimeout(this.data.timeList[i]) } }, // 点击系统Home键返回上一步时候触发 onHide: function(options) { for (let i = 0; i < this.data.timeList.length; i++) { clearTimeout(this.data.timeList[i]) } }, checkIsUpdate: function…

小程序中setTimeout轮询判断数据更新后跳转 2019年9月4日
;

问题来源: 用户使用小程序时若关闭了定位权限,想要重新打开时操作不易,所以要引导去设置里重新打开 解决: 当第一次关闭授权定位后,wx.chooseLocation就会一直调用fail方法,所以当点击打开位置功能时,最好先判断当前是否关闭了定位授权(见wx.getSetting文档详情),再会跳出自定义弹框(showCon),引导前往设置打开定位 wx.chooseLocation({ success: function(e) { //允许打开定位 }, fail: () => { //不允许打开定位 wx.getSetting({ success: (res) => { if (!res.authSetting[‘scope.userLocation’]) { //打开提示框,提示前往设置页面 that.setData({ showCon: true }) } } }) } }) 由于前往设置需要使用button的open-type,因此弹框需要自定义,例如下方,不需要弹框的情况下引用button组件即可(详情见官方文档) //wxml <view wx:if="{{showCon}}" class="modal-mask" bindtap="changeModalCanc…

小程序中引导重新打开定位权限 2019年9月2日
;

一、逻辑运算符 &&(短路与) 特点:只要碰到了false或者等价于false的就短路,只要短路了就不会继续往后执行了。如果短路了,得到造成短路的这个值,如果不短路,得到的是第二个值 console.log( true && true ); // true console.log( 123 && ‘中国’); // 中国 console.log( false && true ); // false console.log( true && false); // false console.log(1 && 0); // 0 console.log( undefined && 0); // undefined console.log(null && 1); // null 二、逻辑运算符 || (短路或) 特点:只要碰到了true或者等价于true的就短路,只要短路了就不会继续往后执行了。如果短路了,得到造成短路的这个值,如果不短路,得到的是第二个值 console.log( true || true ); // true console.log( 123 || ‘中国’); // 123 console.log(…

短路运算 &&和|| 2019年9月2日
;

1、沉没成本陷阱 大卖场为了节约租金成本一般都地处偏远,去一趟不容易。 就像这个Costco,地处上海外环外,去一趟得开小汽车、打出租车、甚至有人不惜多次换乘地铁公交,光路上一来一回就得花起码四五个小时。 这样一来,你就会想,咱汽油费也花了,时间也花了,一定得多买点,才对得起我付出的时间和路费啊,所以就拼命买买买——这就是沉没成本陷阱。 像Costco、山姆会员店、麦德龙这类会员制超市,价格比一般大卖场更便宜,但还有个门槛,是你必须每年花两三百成为会员。这个会员费,也是沉没成本陷阱。 像我一个朋友的爸妈,平时都挺节省的。昨天顶着35度的烈日过去,在Costco挤了一天,最后竟然搬回家一万多块钱的东西,说累也累了、会费也缴了,不买白不买。 我们往往过分执念已经付出的时间、金钱,从而投入更多来值回“已付出的成本”,这是坑,得绕开。 2、货架陈列陷阱 我有个朋友,专门是给Costco、宜家、麦德龙这种大卖场做商品陈列设计的,一个月工资上五万。 为什么他能拿这么高的薪水?因为他的工作对这些大卖场来讲,很值钱。 他的工作的主要目的,就是让你在商场、卖场里面逗留的时间尽量长。逗留时间越长,在里面花钱的可能性就越大。 宜家大家都逛过吧?我每次去逛宜家,都有一种迷路的感觉,会不由自主地顺着它设计的路线,兜来兜去。 眼前和手边,一会出现好看的床品,一会出现晶莹…

沉没成本陷阱 2019年9月1日
;

1.什么是姿态模式 当无GPS信号且下视视觉模块不工作的情况下,飞行器会自动进入姿态模式。姿态模式不使用GPS模块进行定位,仅提供姿态增稳,若GPS卫星信号良好可实现返航。(个人发生两次失控情况均发生在夜晚,视觉模块失效需谨慎)

无人机知识 2019年8月25日
;

1.about:flags 2.打开Developer Tools experiments 3.

chrome开启canvas调试 2019年8月22日
;

1.Canvas 状态的保存和恢复 Canvas的API提供了两个名叫save()和restore()的方法,用于保存及恢复当前Canvas绘图环境的所有属性。其中save()可以保存当前状态,而restore()可以还原之前保存的状态。 这两个方法再绘图中有着重要的作用,比如我们在绘图的时候需要使用多种颜色,颜色需要不时的切换。那么使用save()和restore()方法即可比较方便的实现此功能。 2.理解save()和restore() 对于save()和restore()方法,一开始有一个错误的理解,以为每一步都save()之后restore()就等同于command + z(或者ctrl + z),其实save()保存的只是CanvasRenderingContext2D对象的状态以及对象的所有属性,并不包括这个对象上绘制的图形。 3.Canvas中状态和非状态 在Canvas环境中绘图时,可以利用所谓的绘图堆栈状态。每个状态随时存储Canvas上下文数据。下面是存储在状态堆栈的数据列表。 当前的坐标变换(变换矩阵)信息,比如旋转或平移时使用的rotate()和setTransform()方法 当前剪贴区域 图形上下文对象(CanvasRenderingContext2D)的当前属性值 CanvasRenderingContext2D…

Canvas中的save()和restore()有什么用? 2019年8月21日
;

1.问题描述 阿里云虚拟主机,数据库中的中文信息导入后都成了空的, 2.处理步骤 首先想到的是编码不一致,源数据库是utf8,因此设置设置阿里云数据库,相关操作 show variables like ‘character%’ /*查看编码方式*/ set names ‘utf8’ alter database name character set utf8 相关说明: character_set_client,character_set_connection,这两个是数据库操作导入或者导出解释字符集编码, character_set_results是客户端或者程序显示编码, character_set_database是数据库编码,尽量让这几个编码都统一,常用都设置成utf8编码。 执行set names ‘utf8’会同时设置character_set_client,character_set_connection,character_set_results的编码, 执行alter database name character set utf8;可以设置数据库编码 3,一顿操作后,发现依然无法正常显示,要么就是乱码 4.换个思路 既然目标数据库这么坑爹,那就源数据库导出时候换个编码,更换为gb2132后到处,再次执行导入操作可以正常显示…

阿里云虚拟主机,通过sql文件导入数据库后,包含中文的字段不显示 2019年8月18日
;

1.找到需要的图标,添加到购物车 https://www.iconfont.cn/ 2.打开购物车,点击下载代码 3.复制iconfont.css中的代码,放到app.wxss(全局样式,方便复用) 4.页面中使用 <text class="iconfont icon-gouwuche"></text>

小程序使用字体图标 2019年8月6日
;

This can be done using CSS transforms 1) For 12 equal slices, each slice angle will be 30 degrees. 2) We need to rotate each slice according to the angle between vertical axis and start of the slice. So the first slice will be rotated by 0deg and the last by 330deg 3) Additionally we need to skew each slice by minus (90deg – slice angle) In this case, it is -(90deg – 30deg) = skewY(-60deg) 4) Regarding the text: a) We need to unskew slice contents with skewY(60deg) b) In order to center the text in the slice we need to rotate it by half the slice angle, hence: r…

通过css如何等分一个圆? 2019年8月2日