杰者的备忘录

搭建frp反代国内服务器实现免备案节点的详细步骤

最近境外的服务器真是越来越不稳定了,无论搬瓦工、还是阿里云香港还是各种CN2各种中国直连各种亚洲优化线路,都是想抽风就抽风的状态。于是计划逐步把大部分网站服务器迁回国内。回到国内就不得不面对一个问题,那就是备案。有条件备案的自然问题不大,可是还是有一堆网站各种各样的原因没法备案啊。于是我计划把所有网站的后端服务器全部放腾讯云广州,只留一台阿里云香港在外面作为免备案的反代节点。由于腾讯云对所有端口都有备案检测,所以以往把网站后端服务器改成非80端口,前端服务器直接进行反代的做法行不通。只能先把两台服务器组成一个虚拟内网再反代了(这样两台服务器之间通讯的数据就是加密的,腾讯云就没法拦截了)。在看了ngrok、frp、n2n三种方式以后,选了最简单而且目前还有在更新的frp。

...

微信小程序配置域名的时候提示“校验文件验证失败”

在微信小程序后台配置web-view的业务域名跟扫普通链接二维码打开小程序两项功能时,

一直提示“校验文件验证失败,请下载校验文件,上传到服务器指定的目录”

实际访问校验文件的路径是存在的。找了官方社区也没有找到答案。最后自己还是折腾出来了。

因为我的站点有开启http访问自动跳转到https,于是http访问的时候得到状态码是301而不是200。

明明微信小程序后台配置域名的页面显示的是https,但是微信的服务器访问的居然是http的。。。

...

阿里云短信的ASP版

说起阿里的短信接口真是坑爹,最开始叫阿里大鱼,后面改名成阿里大于,然后又并入阿里云平台,然后在云市场那里也有一个,然后又更新了几次,目前最新的情况是阿里云短信(https://dysms.console.aliyun.com/dysms.htm#/account),改来改去接口也是变了好几次,文档还写得不清楚,坑爹中的坑爹。


每次做新项目需要用到短信的,申请新账号就发现老的代码用不了了,又得重新撸。以前阿里大鱼那些接口还简单,最新版的阿里云短信,文档莫名其妙坑了我一整个晚上,终于OK了。下面分享折腾成果(测试过了 IIS下运行是肯定正常的),代码还没有整理,比较乱,需要用到的兄弟凑合着自己改吧。

...

小程序微信支付的一些要注意的坑

接到一个朋友的电话,说他小程序的微信支付折腾了一个多星期,一直签名错误。由于当时我自己折腾的时候一直很顺利,所以也没当回事。帮他分析了一下,基本就是他没看懂微信的文档导致签名的算法没写对导致的。确实微信官方的文档写作水平很一般。


现在放一些具体的例子在下面给进来的人参考。


首先统一下单里,签名部分因为微信官方文档没有给一个完整的例子,我朋友就掉坑里了。下面提供一个完整的例子(都是必填的参数,排好序的)也就是官方文档里的stringA,注意这里的appid是小程序的appid不是公众号的appid,不要搞错

...

ASP的参数名按ASCII码从小到大排序(字典序)函数

各种各样的API接口签名都是要求对参数名先进行排序的,其他语言还好,自带了排序功能,ASP没有自带排序函数,只能自己定义。

这个函数并不是我写的,而是很多年前从支付宝的DEMO里面挖到的。


参数传数组进去,然后返回值是已经按ASCII码从小到大(也就是ABCDEFG...这样的)排序好的数组。


Function SortPara(sPara)

 Dim nCount

 nCount = ubound(sPara)

 For i = nCount To 0 Step -1

  minmax = sPara( 0 )

     minmaxSlot = 0

     For j = 1 To i

            mark = (sPara( j ) > minmax)

         If mark Then 

             minmax = sPara( j )

             minmaxSlot = j

         End If

     Next

  If minmaxSlot <> i Then 

   temp = sPara( minmaxSlot )

   sPara( minmaxSlot ) = sPara( i )

   sPara( i ) = temp

  End If

 Next

 SortPara = sPara

end Function

 

...

破解火车头发布模块密码的思路以及读取器

下了某源码网站的源码带有一个火车头采集器7.6,想修改一些东西,但是发现发布模块被加密了,NND百度了一下,只有一个网站提供火车头发布模块的破解服务,收费30大洋一个。太贵。于是自己研究,不是很难,下面是思路(博客模板的问题,图片被缩小了,完全看不清,谷歌内核的浏览器可以拖拽图片放开可以看大图。)原本以为wpm文件就是一个文本文件,拉到文本编辑器,发现是二进制文件,注意到下面有个module.xml,貌似是压缩包的样子,把wpm改成zip,果然是压缩包,module.xml就静静的躺在那里。再用...

阿里云RDS的SQLSERVER2012/2016创建数据库的方法

以前买过阿里云RDS的SQL SERVER2008,感觉挺好用的,直接在阿里云面板管理也方便,最近又买了个新的实例,选的SQL SERVER2012版,进到面板直接懵逼了,找不到创建数据库的地方。于是阿里云帮助文档看了下,噢噢有教程https://help.aliyun.com/document_detail/43164.html呃,要用命令创建,从这个问题上,可以看出阿里的现在的技术多渣了,前一批人可以搞出图形面板创建,后一批人搞不定,只能让用户手动去执行命令。好吧,手动就手动。复制官方文档里...

解决宝塔面板使用反向代理时Let's Encrypt免费证书无法自动更新的问题

 问题形成原因是因为更新Let's Encrypt免费证书时,Let's Encrypt会访问你的http://域名/.well-known/pki-validation/fileauth.txt这个路径,由于你启用了反向代理,而宝塔又无法往你后端服务器写入文件,导致Let's Encrypt无法访问到你的验证文件自然也就无法更新证书了,解决起来其实很简单,让.well-known目录不要走反向代理就可以了。

 

登录宝塔面板 → 网站 → 设置 → 配置文件

...

微信小程序ASP版无组件加密数据解密算法

 

微信小程序接口如果涉及敏感数据(例如 wx.getUserInfo的withCredentials 或者 wx.getPhoneNumber),都需要走后端去解密这些敏感数据。

对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充。

微信官方提供了多种编程语言的示例代码但是没有ASP的,网上也没有现成的,所以只能自己折腾了,通过整合CryptoJS v3.1.2可以实现AES跟BASE64的解密,从而实现纯ASP版的无组件加密数据解密算法。

...

微信小程序rich-text组件在苹果IOS图片显示不了

由于有一些文章是从公众号那边复制过来的,公众号后台会尝试把图片转换成webp格式。


作为安卓用户,webp在安卓上看起来是正常的。加上又是个人开发者,没有条件去做各种测试。普通用户一般也不太会挑这些问题会反馈的就更少了。


最后还是经过了很久自己偶然在一个朋友的iPhone手机上发现的问题。


微信小程序的文档里并没有注明这些兼容性的问题。真是坑。

...