微信小程序开发常见问题
最近在做公司小程序开发,以前只是做后台接口,现在开始接触到小程序前端。遇到一些问题。总结记录下。
请求无响应无网络请求,console提示 需要配置合法域名
需要在小程序官方中配置请求域名。 开发管理-开发设置-服务器域名-request合法域名
本地正常,线上异常小程序,在开发者工具中,显示正常,线上无数据展示。
可能原因为设置 开发者域名。
在小程序-开发-开发管理-开发设置中,有服务器域名设置。未设置域名,可能导致线上无法获取数据。
需要在服务器安全域名中配置相应的域名。这是微信的一种安全机制。
体验版扫码空白,重新进入正常真机测试没问题,发布为小程序体验版后,扫码进入白屏,重新进入小程序才会出现首页。
可能是体验版设置的首页路径和代码首页不一致
支付支付提示账号不匹配,需要在支付账户中申请关联,同时在小程序账号中,同意关联。
设置AppID微信开发者工具,可以在项目创建时,设置appID
也可以点击右上角“详情” 修改AppID
校验文件微信配置普通二维码时,需要配置微信校验文件。
请下载校验文件,并根据说明文档要求将文件上传至服务器指定目录
一般我们可以在Nginx上 ...
Linux大文件删除
通常,要在 Linux 终端删除一个文件,我们使用 rm 命令(删除文件)、shred 命令(安全删除文件)、wipe 命令(安全擦除文件)。
如果我们想要删除超大的文件/文件夹,比如大概 100-200GB,在删除文件(I/O 调度)所花费的时间以及 RAM 占用量方面,就没有那么简单。
为啥不用rmrm命令大量调用了lstat64和unlink,可以推测删除每个文件前都从文件系统中做过一次lstat操作。过程:正式删除工作分三阶段。
第一阶段,需要通过getdirentries64调用,分批读取目录(每次大约为4K),在内存中建立rm的文件列表;
第二阶段,lstat64确定所有文件的状态;
第三阶段,通过unlink执行实际删除。
这三个阶段都有比较多的系统调用和文件系统操作。
清空内容来释放空间通过重定向到 Null 来清空文件内容清空或者让一个文件成为空白的是最简单方式。
通过重定向到 Null 来清空文件内容1# > access.log
使用 ‘true’ 命令重定向来清空文件12# : > access.log # true ...
git仓库同步
最近进行了git仓库迁移,将git代码从自建的gitlab仓库,转移到阿里云的“云效”管理平台。
阿里云-云效
同步仓库12345git clone --mirror https://github.com/xxxxxxx/oldProject.gitgit remote set-url origin https://github.com/xxxxxxx/newProject.gitgit push --mirror
拉取所有分支Git 远程同步
git 拉取远程所有分支
12345git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; donegit fetch --all && git pull --allgit remote set-url origin git@192.168.1.237:algo/chicona_c ...
扫普通链接二维码打开小程序
小程序与线下对接时,需要用到普通二维码。
例如,管理后台设置了商品分享二维码,需要分享商品详情页面,希望用户打开后,直接跳转到小程序的商品详情页。
查看官方文档,刚好有这样的功能,能够通过普通的网页url跳转小程序。
首先、需要在小程序中官方平台中配置规则。
同时、在代码中接受特定的参数。
例如www.pangxieke.com/pages/goods/detail/detail?sku_id=123
这样的链接,在用户用微信扫码时,就可以跳转到小程序了。
普通二维码的区别此方法和调用小程序产生的分享二维码不同。
在小程序官方文档中,有获取二维码的接口。通过调用小程序接口,传入scene 字段,获取对应二维码。
scene 字段的值会作为 query 参数传递给小程序/小游戏。用户扫描该码进入小程序/小游戏后,开发者可以获取到二维码中的 scene 值,再做处理逻辑
但在线下,这种方式就过于繁琐,不太适合。
官方文档:
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr- ...
微信小程序长按识别二维码
最新开发小程序,需要在小程序中添加二维码,引导用户关注个人微信号。验证发现有人实现了相应功能。现在将原文转载。
我们都知道公众号里的二维码可以长按识别,但是小程序限制比较严格,没有办法实现二维码的长按识别,一直以来我都是这样认为的,微信的官方规则里也是这么写的,直到今天上午,我无意间发现一个小程序里的二维码居然可以长按识别,于是就好奇的去研究了一番,结果还真的可以实现小程序里长按识别二维码。不知道是官方的漏洞还是程序的bug,但是既然这个功能可以实现,那当然要愉快的用上一用啦
小程序使用webview来显示公众号文章我们知道公众号文章里是自带长按识别二维码的功能的,所以我们要先在小程序里长按识别二维码,就必须在小程序里显示公众号文章,怎么显示公众号文章在小程序里呢,这里我们就要用到webview了。webview使用起来很简单,只需要如下即可。
1<web-view :src="src"></web-view>
src就是我们公号文章对应的链接,只需要这样写就完成了代码部分了,后面都是一些配置工作了。
公众号中设置关联小程序如果你只是随便找 ...
巧用git submodule子模块,轻松维护大项目
项目中如果经常需要使用一些子模块,子模块可以单独独立成为一个仓库,由专人维护。使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可。这就需要使用Git的submodule功能。
公司一些大项目,依赖很多其他的子项目。而且这些子项目,被用在多个大项目中,就中情况,就需要使用了git submodule子项目功能。判断项目是否使用了该功能,可以查看项目根目录,是否存在了一个.gitmodule文件。
官方介绍https://git-scm.com/docs/git-submodule
使用子模块的添加添加子模块非常简单,命令如下:
1git submodule add <url> <path>
其中,url为子模块的路径,path为该子模块存储的目录路径。
执行成功后,git status会看到项目中修改了.gitmodules,并增加了一个新文件(为刚刚添加的路径)
子模块的使用克隆项目后,默认子模块目录下无任何内容。需要在项目根目录执行如下命令完成子模块的下载:
12git submodule initgit submodule ...
kdevtmpfsi挖矿病毒
最近阿里云服务器安全警告,提示发现蠕虫病毒,查找了相关资料,发现是被注入了挖矿病毒。
kdevtmpfsi:挖矿程序,会占用服务器的内存与流量,无故内存爆满、流量跑满,如果是云服务器严重的还会被官方停封机器。
病毒原理腾讯安全威胁情报中心捕获H2Miner挖矿蠕虫新变种,这篇文章详细介绍了挖矿病毒的攻击原理。
其主要利用的漏洞如下:
Redis未授权RCE;
Solr dataimport RCE(CVE-2019-0193);
Hadoop Yarn REST API未授权RCE(CVE-2017-15718);
Docker Remote API未授权RCE;
ThinkPHP5 RCE;
Confluence 未授权RCE(CVE-2019-3396);
SaltStack RCE(CVE-2020-11651)
恶意进程(云查杀)-蠕虫病毒
问题描述top查看cpu占用情况,会发现服务器CPU资源占用一直处于100%的状态。
Linux服务器出现名为kdevtmpfsi的进程,占用高额的CPU、内存资源。
单纯的kill -9 进程ID, 无法完全杀死,不久就会复活。
cron ...
python使用pip.req错误
今天使用Docker build 一个Python项目时,提示错误。查询相关资料,记录如下。项目使用requirements.txt文件,放置环境依赖,但是使用会导致pip.req提示失败。尝试修改后成功。结论:避免在requirements.txt文件中放置任何依赖项链接。而是使用下面提到的方法。您可以直接将依赖项链接放入setup.py文件中。
源码12345678910111213141516#from pip.req import parse_requirementsfrom pip._internal.req import parse_requirementsinstall_reqs = parse_requirements('requirements.txt', session=False)install_requires = [str(ir.req) for ir in install_reqs]setup(name='chumpy', version=get_version(), packages = ['c ...
Go使用CGO调用C语言
C语言作为一个通用语言,很多库会选择提供一个C兼容的API,然后用其他不同的编程语言实现。
Go语言通过自带的一个叫CGO的工具来支持C语言函数调用,同时我们可以用Go语言导出C动态库接口给其它语言使用。
要使用CGO特性,需要安装C/C++构建工具链,在macOS和Linux下是要安装GCC,在windows下是需要安装MinGW工具。同时需要保证环境变量CGO_ENABLED被设置为1,这表示CGO是被启用的状态。在本地构建时CGO_ENABLED默认是启用的,当交叉构建时CGO默认是禁止的。比如要交叉构建ARM环境运行的Go程序,需要手工设置好C/C++交叉构建的工具链,同时开启CGO_ENABLED环境变量。然后通过import "C"语句启用CGO特性。
调用C标准库函数1234567891011121314151617181920package main/** * 调用 C 语言<stdio.h>头文件 * //#include <stdio.h> 这里不能有空行 import ( " ...
Mac下使用opencv(2020)
背景因为工作需求,本人要在MAC端使用OpenCV实现一些视觉功能,配置环境成了最大的阻碍,网上查了很多相关资料和博客,都因为版本环境问题屡试屡败,不过经历重重尝试,笔者最终还是配置成功并运行了自己的源码.当然成功的关键还是因为笔者站在了巨人的肩膀上,借鉴了很多网上的教程
安装opencv可以通过源码安装,但mac上使用brew安装更加方便
12345brew search opencv# 最新版本是opencv4,这里安装openc@2brew install opencv@2#安装成功后查看brew info opencv@2
显示相应信息
12345678910111213141516171819202122232425opencv@2: stable 2.4.13.7 (bottled) [keg-only]Open source computer vision libraryhttps://opencv.org//usr/local/Cellar/opencv@2/2.4.13.7_11 (278 files, 35.1MB) Poured from bottle on ...