| 普通订阅号 | 认证订阅号 | 普通服务号 | 认证服务号 | |
|---|---|---|---|---|
| 注册主体为个人类型 | √ | × | × | × |
| 注册主体为企业类型(个体工商户,无对公账户) | × | √ | × | √(不能申请微信支付?) |
| 注册主体为企业类型(个体工商户,有对公账户) | √ | √ | √ | √ |
| 注册主体为企业类型(企业公司类) | √ | √ | √ | √ |
| 群发 | 每天 1 条 | 每天 1 条 | 每月 4 条 | 每月 4 条 |
| 接口权限 | 参:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433401084 | |||
参考资料
http://kf.qq.com/faq/120911VrYVrA130619v6zaAn.html
过程很简单,就是手机通过安装了 Fiddler 的电脑代理上网就可以抓包了,具体设置:
打开 Fiddler Web Debugger 菜单栏上的 Tools -Fiddler Options...
切换到 Connections 选项卡
勾选 Allow remote computers to connect 并记住上面的端口号 Fiddler listens on port,默认 8888,OK,关闭并重新开启 Fiddler
在手机上修改已连接的网络配置,手动设置代理为电脑上网的本地 IP,端口号就是上一步的 Fiddler listens on port,好了,手机上的网络请求都可以在 Fiddler 上捕获到了。
Android 系统要求每一个安装进系统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android 系统将数字证书用于在应用程序的作者和应用程序之间建立信任关系,但并不用于决定最终用户可以安装哪些应用程序。这个数字证书并不需要权威的数字证书签名机构认证,它只是用于应用程序包自我认证的。
Android 数字证书包含以下几个要点:
(1)所有的应用程序都必须有数字证书,Android 系统不会安装一个没有数字证书的应用程序
(2)Android 程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证
(3)如果要正式发布一个 Android 应用程序安装包,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用如 ant 工具等生成的调试证书来发布。
(4)数字证书包含应用程序所有者姓名,所在组织,国家,证书创建时间,证书有效期等信息。
(5)Android 使用标准的 Java 工具 Keytool and Jarsigner 来生成数字证书,并给应用程序包签名。
(6)Android 数字证书跟包名无关,多个不同包名的应用程序安装包可使用同一个数字证书对其进行签名。
(7)Android 系统不会覆盖安装运行包名相同,签名证书不同的两个安装包。
注意:如果您的 App 已经上线 Android 市场,或者已经正式发布,有用户已经正式使用了,切勿再更换签名证书,否则,App 在自动更新覆盖安装升级时,Android 系统将会认为新签名证书的 App 安装包是“非法签名”的 App,而不予安装,导致更新失败,流失用户。
打开 Fiddler Web Debugger 菜单栏上的 Tools - Fiddler Options...
切换到 HTTPS 选项卡
勾选 Capture HTTPS CONNECTs 及 Decrypt HTTPS traffic,OK
另,这种情况如何破?
*** FIDDLER: RawDisplay truncated at 128 characters. Right-click to disable truncation. ***
真机同步:Ctrl + R
注释/取消注释代码:Ctrl + /
整理代码:Ctrl + Shift + F
var iOS7AndLater = api.systemType == 'ios' && parseFloat(api.systemVersion) >= 7; // api.systemVersion 结果类似 4.5.6,parseFloat 后 iOS 为 4, Android 为 4.5
api.addEventListener({
name:'swipedown'
},function(ret,err){
//operation
});
api.addEventListener({
name:'swipeup'
},function(ret,err){
//operation
});
有时候在监听 swipedown 和 swipeup 事件时没有进入 callback,原因是打开这个 window 或 frame 时,bounces 是 true 的,只要将 bounces: false 即可。
api.showProgress();
api.hideProgress();
api.openFrame({
name
url
rect
});
api.openFrameGroup
api.openWin
api.setRefreshHeaderInfo({},function(ret,err){
// coding...
alert("正在用力刷新");
api.refreshHeaderLocalDone();
});
localStorage.setItem("xxx",ret.id);
if(localStorage.getItem("xxx")){ }
本教程使用的软件版本:
VMware Workstation 12 Pro for Windows
Mac OS X Unlocker for VMware V2.0.6
一个能让虚拟机 VMware 安装 OS X 系统的解锁补丁
OS X 10.10.5 Yosemite (14F27) 懒人版 CDR 镜像
CRC32: C7E1E915
MD5: A76FF6E43058A40182435D274D9EB976
SHA-1: 7DDC194E779B003AFDCF2B7C11BEB6D4443F8D72
安装步骤:
1、安装 VMware Workstation
2、新建虚拟机:选择 典型 - 稍后安装操作系统,当然现在还看不到 Apple Mac OS X,先退出 VMware
3、安装 Unlocker
4、重复第 2 步,选择 Apple Mac OS X,并选择对应的 OS X 版本,后续跟据情况自行配置
5、编辑虚拟机设置 - CD/DVD(SATA) - 使用 ISO 镜像文件 - 浏览 - 所有文件(*.*),定位到 .cdr 镜像文件
6、开启此虚拟机
7、如果报错:VMware Workstation 不可恢复错误: (vcpu-0),打开新建虚拟机时指定的位置(默认在 C:\Users\用户名\Documents\Virtual Machines\虚拟机名\),用记事本打开 .vmx 文件,添加一条配置:smc.version = "0",保存关闭后重新开启虚拟机
8、如果屏幕中央出现一个禁止的图标,那么表示当前版本的 VMware 不支持安装当前版本的 OS X
9、如果在“选择要安装到的磁盘”界面仅列出了镜像文件而无法继续安装,请在窗口顶部的菜单栏中选择 实用工具 - 磁盘工具,选中新建虚拟机时创建的磁盘,切换到“分区”选项卡进行分区操作,简单地可以选择“1 个分区”,点击“应用”、“分区”,退出磁盘工具。现在可以把 OS X 安装在刚刚创建的分区上了
10、继续愉快地安装和使用 OS X 吧!
使用此方法将 OS X 安装到物理磁盘并支持开机直接运行,请参考此文:超详细 (60P)利用虚拟机安装10.9.4(懒人版)到真机教程
jQuery 请求代码:
$.ajax({
url: "xxxxxx",
//method: "GET", // 默认 GET(当 dataType 为 jsonp 时此参数无效,始终以 GET 方式请求)
data: $('#myForm').serialize(), // 要传递的参数,这里提交表单 myForm 的内容
dataType: "jsonp"
//, jsonp: "callback" // 请求中的回调函数的参数名,默认值 callback
//, jsonpCallback: "jQuery_abc" // 本地回调函数名,不指定则随机
})
.done(function () {
alert("done");
if (true) {
$('#myForm')[0].reset();
}
})
.fail(function () { alert("fail"); })
.always(function () { alert("complete"); });
ASP.NET 处理代码:
JavaScriptSerializer jss = new JavaScriptSerializer();
string json = jss.Serialize(new { result = new { success = true, msg = "成功" } });
if (!string.IsNullOrWhiteSpace(Request["callback"])
&& Regex.IsMatch(Request["callback"], @"[_$a-zA-Z][$\w]*"))
{
Response.ContentType = "application/javascript; charset=utf-8";
Response.Write(json + Request["callback"] + "(" + json + ")");
}
else
{
Response.ContentType = "application/json; charset=utf-8";
Response.Write(json);
}
Response.End();
0 <= n < 1
var n = Math.random();
0 <= n < 100
var n = Math.random() * 100;
10 <= n < 100
var n = Math.random() * (100 - 10) + 10;
若需要生成整数,则使用 Math.floor() 方法进行下舍入即可:
0 <= n < 100(n 为整数):
var n = Math.floor(Math.random() * 100);
10 <= n < 100(n 为整数):
var n = Math.floor(Math.random() * (100 - 10) + 10);
换句话说,
0 <= n <= 99(n 为整数):
var n = Math.floor(Math.random() * (99 + 1));
10 <= n <= 99(n 为整数):
var n = Math.floor(Math.random() * (99 + 1 - 10) + 10);
总结公式,要生成 min <= n <= max 的整数:
var n = Math.floor(Math.random() * (max + 1 - min) + min);
关于wdcp后台要用mysql root用户密码的说明,可以看这里
http://www.wdlinux.cn/bbs/thread-932-1-1.html
要在wdcp后台里创建数据库及数据库用户,那就必须要让wdcp里有root用户密码,否则,就无法创建
所以,有些用户说,在phpmyadmin修改了root用户密码后,就无法创建了,那是肯定的,因为你改了root的密码,但wdcp不知道,也不知道新密码是什么,那还能创建吗?答案是 肯定是不能的
那要怎样正确地修改root用户的密码呢?难道就不难修改了吗,当然不是
只要在wdcp的后台里修改就可以了,所以也强烈建议在wdcp后台里修改,如下图
那如果已经修改了或在其它地方修改了还有办法吗
有,可以上面那个连接的说明
又或者用这个工具修改,wdcp2.2版本开始提供
用ssh登录到服务器上运行
sh /www/wdlinux/tools/mysql_root_chg.sh
就可以了
这个工具修改,还可以用在忘记root用户密码的时候修改,是强制修改
注:这里说的root用户,是mysql数据库里的root用户,不是Linux系统的root用户,有区别的
最近有服务器不时出现的CPU使用率超高,内存几乎被吃光,系统甚至自动kill掉一些进程,如sshd,vsftpd等。用top查看,PHP-CGI进程高挂不下,如下是解决方案:
一、进程跟踪
# top //找出CPU使用率高的进程PID
# strace -p PID //跟踪进程
# ll /proc/PID/fd //查看该进程在处理哪些文件
将有可疑的PHP代码修改之,如:file_get_contents没有设置超时时间。
二、内存分配
如果进程跟踪无法找到问题所在,再从系统方面找原因,会不会有可能内存不够用?据说一个较为干净的PHP-CGI打开大概20M-30M左右的内存,决定于PHP模块开启多少。
通过pmap指令查看PHP-CGI进程的内存使用情况
# pmap $(pgrep php-cgi |head -1)
按输出的结果,结合系统的内存大小,配置PHP-CGI的进程数(max_children)。
三、监控
最后,还可以通过监控与自动恢复的脚本保证服务的正常运转。下面是我用到的一些脚本:
只要一个php-cgi进程占用的内存超过 %1 就把它kill掉
#!/bin/sh
PIDS=`ps aux|grep php-cgi|grep -v grep|awk’{if($4>=1)print $2}’`
for PID in $PIDS
do
echo `date +%F….%T`>>/data/logs/phpkill.log
echo $PID >> /data/logs/phpkill.log
kill -9 $PID
done
检测php-fpm进程
#!/bin/bash
netstat -tnlp | grep “php-cgi” >> /dev/null #2&> /data/logs/php_fasle.log
if [ "$?" -eq "1" ];then #&& [ `netstat -tnlp | grep 9000 | awk '{ print $4}' | awk -F ":" '{print $2}'` -eq "1" ];then
/usr/local/webserver/php/sbin/php-fpm start
echo `date +%F….%T` “System memory OOM.Kill php-cgi. php-fpm service start. ” >> /data/logs/php_monitor.log
fi
通过http检测php执行
#!/bin/bash
status=`curl -s –head “http://127.0.0.1:8080/chk.php” | awk ‘/HTTP/ {print $2}’`
if [ $status != "200" -a $status != "304" ]; then
/usr/local/webserver/php/sbin/php-fpm restart
echo `date +%F….%T` “php-fpm service restart” >> /data/logs/php_monitor.log
fi