自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李高峰的博客

知难而进,时刻保持一颗乐观向上的心!

  • 博客(160)
  • 收藏
  • 关注

原创 APP端支付宝支付对于社交类的越来越严格了

一点感触吧,记得2021年和2022年做社交类的产品时,包括语音房和1V1类的,APP端的支付宝充值通道没出过什么问题,当时的现象是反倒APP端所用的微信充值通道动不动的就是商户号先提示充值有风险,再是完全不能充值,往往都换了N个微信商户号了,支付宝充值一个通道依旧坚挺如旧。但进入2023年后发现支付宝充值通道比微信更脆弱,而且更决绝、更无情,往往是同一个公司主体下支付宝通道被禁用收款功能后,这个主体下就能再申请支付通道了,只能另想办法了。

2023-11-08 20:49:32 116

原创 阿里云号码认证服务(一键登录)在连接wifi的情况下部分机型下存在的问题

这个现象之前一直存在,而且不止是在我这个机型下,反正连接wifi的情况下出现的概率很高,为不影响用户注册或登录,采用阿里云一键登录的情况下只能采用上面的两个方案中的一个。安装手机卡(联通卡),且连接wifi的情况下,APP登录唤起阿里云一键登录服务大概有90%左右必超时(按照阿里云一键登录官方文档设置的超时时间为5秒)。1、APP端增加超时判断,且在等待期间最好增加一个状态提示,超时后让用户选择短信验证码登录;2、APP端判断在wifi的情况下直接禁用阿里云一键登录服务,直接让用户选择短信验证码登录;

2023-10-31 16:39:29 390

原创 创业公司使用腾讯云存储注意事项

一个创业公司在使用腾讯云存储中遇到的大坑

2022-03-18 13:00:23 1339 1

原创 hyperf/easyswoole/swoole等基于swoole的框架集成阿里云STS服务端SDK导致整个项目时间不对的坑

因项目需要从要集成阿里云STS的服务端SDK,从阿里云官网下载地址为:https://gosspublic.alicdn.com/doc31920servercode/sts-server.zip?spm=a2c4g.11186623.0.0.65f73af0MiW74k&file=sts-server.zip解压后服务代码中有下面两行代码:sts-server/aliyun-php-sdk-core/RpcAcsRequest.php中的45行:date_default_timez

2022-03-07 16:32:14 996

原创 在对接腾讯IM过程中要注意的问题

在对接腾讯IM时,有一步是在用户在登录成功后,需要服务端调用腾讯IM的服务端API接口:生成UserSig,并把这个UserSig在服务端存储起来并与用户对应,然后返回给APP端,APP端用这个UserSig去初始化客户端腾讯的IM SDK使用。在测试过程中发现这个诡异现象:同一个帐号先在A(假设为andriod手机)设备上登录后,然后结束APP,然后再去B(假设为iphone手机)设备上登录该帐号,然后停留在登录后的页面不做任何操作,也不切到后台,再去A设备上启动刚杀掉的APP,最终结果是两台设备上.

2022-01-02 15:17:16 1753

原创 在对接三方服务云帐户过程发现的问题

基于项目需要,银行卡四要素校验的对接的是云帐户的,在开发过程中根据云帐户提供的PDF文档中说明进行编码对接,其中PDF文档说明中有以下两处:这两处说明放在一起看就会有问题,因为在PHP7下按照上图中的写法,PHP的内置方法openssl_encrypt由于第四个参数值为0,导致encrypt方法中最终返回的$ret的值已经是base64_encode之后的串了,但是估计大多开发可能不知道这点,就容易针对encrypt方法返回的值再次base64_encode一下,最终调用云...

2021-12-18 18:09:21 2373

原创 注销百度帐号有多难

相注销一个百度帐号,提示在百度钱包绑定的有银行卡不能注销:但实际登录度小满金融APP或PC端查询的均无绑定的银行卡信息:咨询度小满金融客服电话95055查询的是我这个帐号确实没绑定银行卡,让打百度总机010-59928888咨询,打这个总机咨询的是又让在百度APP上咨询客服,再百度APP上咨询客服回复的是又让咨询度小满金融,日了狗了!一直以为踢皮球行为在某些事业单位才存在,没想到百度踢皮球行为也相当的严重和无耻!...

2021-06-03 10:50:11 1202 1

原创 golang数值类型快速记忆

基本在所有的golang教程中介绍基本数据类型中的数字类型时都会列出下面这张表来说明值范围:类型 符号 长度范围 uint8 无符号 8位整型 (0 到 255) uint16 无符号 16位整型 (0 到 65535) uint32 无符号 32位整型 (0 到 4294967295) uint64 无符号 64位整型 (0 到 18446744073709551615) int8 有符号 8位整型 (-128

2021-06-02 19:32:43 119

原创 hyperf:服务端通过makeSocket主动给特定用户推送长连接消息注意事项

公司网站端有这么一个场景:用户扫码(微信扫码或支付宝扫码)充值成功后,在微信或支付宝付款结果通知到服务端后,服务端要通过socket长连接再通知给充值用户提示充值成功。公司测试环境部署的hyperf服务分别只有一台,但是线上生产环境部署的hyperf服务有两台,这两台基于同一个redis服务维护的socket长连接信息。但在使用过程中发现,在测试环境前端能收到服务端推送的emit事件消息,但在线上环境,有时收不到,有时能收到。代码如下:$container = ApplicationCon

2021-04-21 20:06:48 1196

原创 mysql分页数据重复问题另一种解决方案

最近在线上项目发现下面两个SQL分页查询到的结果有可能是重复的:第一页的SQL:SELECT * FROM `users` WHERE show_in_cp=1 order by is_online desc,updated_at desc,id desc limit 0,10第二页的SQL:SELECT * FROM `users` WHERE show_in_cp=1 order by is_online desc,updated_at desc,id desc limit 10,.

2021-02-22 16:59:41 1503 2

原创 mac下安装golang框架iris

安装前准备:设置GOPROXY代理参考:https://goproxy.cn/我使用的是下面的两条命令:$ go env -w GO111MODULE=on$ go env -w GOPROXY=https://goproxy.cn,direct我的go env信息:% go envGO111MODULE="on"GOARCH="amd64"GOBIN=""GOCACHE="/Users/mac/Library/Caches/go-build"GOENV="/User

2020-11-26 23:18:58 844

原创 MAC下phpstorm重装后打不开、闪退的问题终极解决方案

原先装的是phpstorm2019.3破解版的,正好朋友购买了正版的全家桶,就把破解版的phpstorm2019.3删除了,然后从phpstorm官网下载了最新的安装包phpstorm2020.2.3,但是安装后一点击打开就立即退出,连欢迎界面都没有打开。网上参考类似下面的:rm -rf /Users/username/Library/Logs/PhpStorm2019.3rm -rf /Users/username/Library/Preferences/PhpStorm2019.3rm -

2020-11-06 09:41:47 3531

原创 微信内H5调起支付演示

实际开发中有这么一个场景,基于微信公众号(服务号)支付,当前微信用户可以给自己或指定的APP用户充值,实际的交互流程为:第一步:用户同意授权获取code值 应用授权作用域scope参数值固定为snsapi_base(这种方式不弹出授权页面,直接跳转,只能获取用户openid) 授权URL(参考:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html): 其中redirec

2020-10-16 17:52:02 1284 1

原创 hyperf中实现在短连接根据fd值把其加入某个房间样例

Hyperf提供有直接从容器中获取SocketIO实例的方法:$io = \Hyperf\Utils\ApplicationContext::getContainer()->get(\Hyperf\SocketIOServer\SocketIO::class);那么另提供的有在短连接中有根据这个实例去把某个sid加入某个房间的功能吗?官方文档中有个$socket->join($data);这个是把当前socket的用户加入的某个房间,那么怎么在短连接中把某个用户,如uid值为2的,找到其f

2020-10-03 11:53:21 969

原创 hyperf下报Socket#99 has already been bound to another coroutine问题

我写的这个Demo项目https://github.com/ligaofeng/hyperf-socket-chat在启动后,访问以下两个页面:模拟uid为1的在房间1的Demo样例:http://127.0.0.1:9501/view/socket1模拟uid为2的在房间1的Demo样例:http://127.0.0.1:9501/view/socket2会触发以下BUG:PHP Fatal error: Uncaught Swoole\Error: Socket#99 has al...

2020-09-24 20:10:59 2332 1

原创 MAC下composer安装hyperf后遇到的CPU资源占用过高的情况

上午通过hyperf的官网安装说明通过:composer create-project hyperf/hyperf-skeleton 命令安装了hyperf,安装过程中询问各种composer package是否安装,我都选择的y,安装记录如下:composer create-project hyperf/hyperf-skeleton Creating a "hyperf/hyperf-skeleton" project at "./hyperf-skeleton"Installing

2020-09-17 14:27:25 2577

原创 phalcon蹩脚的面包屑(breadcrumbs)功能

按照https://docs.phalcon.io/4.0/mn-mn/api/phalcon_html#html-breadcrumbs上的说明,在项目中开启了breadcrumbs功能:$di->set( 'breadcrumbs', function () { $breadcrumbs = new \Phalcon\Html\Breadcrumbs(); $breadcrumbs->setSeparator('/');

2020-08-27 02:03:23 220

原创 phalcon集成composer

php版本:7.4.8phalcon扩展版本:4.0.6//Phalcon方式$loader->registerFiles([ROOT_PATH . '/vendor/autoload.php']);//composer 默认方式//require ROOT_PATH . '/vendor/autoload.php';其中ROOT_PATH指你的项目的根目录路径。我的设置信息:然后在项目根目录下尝试composer方式安装七牛SDK、phpmailer:$ p..

2020-08-27 01:51:09 580

原创 phalcon验证证器allowEmpty参数

在写phalcon中为某个功能模块写验证器时,要验证用户输入的email是否合法,除了在前端有JS 插件验证外,在用户输入的email落库前我使用了phalcon验证器(https://docs.phalcon.io/4.0/en/validation)再次验证了下。自己设计的是讲师的“邮箱”字段可以输入,也可以不输入,开始在验证器中写法如下: $this->add( 'email', new Email(

2020-07-24 17:39:35 490

原创 golang标准库flag库网络样例之实操(二)

package mainimport ( "fmt" "flag")func main() { namePtr := flag.String("name", "username", "姓名") agePtr := flag.Int("age", 18, "年龄") musclePtr := flag.Bool("muscle", true, "是否有肌肉") var email string flag.StringVar(&ema.

2020-07-15 18:02:33 213

原创 golang标准库flag库网络样例之实操(一)

package mainimport ( "flag" "fmt")var ( arg1 string arg2 int arg3 bool)func init() { flag.StringVar(&arg1, "arg1", "defaultArg1", "arg1") flag.IntVar(&arg2, "arg2", 12, "arg2") flag.BoolVar(&arg3, "ar...

2020-07-15 17:44:49 166

原创 如果有人加你微信或QQ给你介绍东南亚的工作

之前写过一篇《国内总有些无良的人在干着类似当年非洲人帮着欧洲人贩卖非洲人的勾当》来提醒一些寻找工作的人警惕国内的一些人介绍你去东南亚国家搞技术开发。今天又碰到了一个我认为是某种疑似的,事情的经过是这样的,今天下午7:50左右有个微信号为:a15613254064的人加我,在加我的备注写到“您好,这边收到您投递的简历,方便沟通一下吗”,我还真以为是我投递的哪家公司的HR联系我就同意加了,加了之后的聊天记录如下(未删除任何一条聊天记录):聊天记录,我不想点评什么,你们自己心里体会。然

2020-06-04 21:20:16 1035 7

原创 boss直聘为何不显示真实的职位原始发布时间?

boss直聘的PC网站在职位搜索结果页显示的有“发布于何时”的提示,只可惜只显示的有“月-日”,即没有年份。比如今天是公元2020年5月17日,在boss直聘PC端看到的某个职位发布于“5月12日”可能并非真的发布于2020年的5月12日,有可能是发布于2019年的5月12日,更有甚者发布于2018年的5月12日、2017年的5月12日......比如在“北京”区搜相关关键词搜显示的以下几条招聘信息:虽然在搜索页可以按“发布时间”显示最近的:比如某夫子旧书网式的职位,

2020-05-17 13:30:43 49368 10

原创 phalcon引入子模板的partial方式和include方式的区别与选择

volt模板引擎是用C开发的高性能模板引擎,phalon对其有很好的内置的支持,其很好的支持模板继承和子模板包含引入功能,在此要说的是在一个视图模板中引入另一个视图模板时常用的partial方式和include方式的区别。按照官方volt文档说明,以partial方式(其实来自Phalcon\Mvc\View)引入子视图模板的方式为:<div id='footer'> {{ partial('partials/footer') }} {{ partial('partia

2020-05-14 23:05:30 390

原创 golang的go test初探

在《go语言圣经》中关于go test的说明如下:go test命令是一个按照一定的约定和组织来测试代码的程序。在包目录内,所有以_test.go为后缀名的源文件在执行go build时不会被构建成包的一部分,它们是go test测试的一部分。在*_test.go文件中,有三种类型的函数:测试函数、基准测试(benchmark)函数、示例函数。一个测试函数是以Test为函数名前缀的函数,用于测试程序的一些逻辑行为是否正确;go test命令会调用这些测试函数并报告测试结果是PASS或FAIL。基准测

2020-05-09 20:24:39 486

原创 mac下brew安装mysql8.0.19

之前在MAC上安装MYSQL一般是用官方的直接解压安装或下载dmg安装包或者自己编译安装,今天尝试第四种方式brew安装。1、先brew info mysql查看下版本信息:2、brew install mysql直接安装:3、启动MYSQL服务mysql.server start4、初始化配置mysql_secure_installation5、连接...

2020-05-08 13:19:58 8498

原创 MAC系统下重新编译安装nginx1.16.1

自昨晚升级MAC系统到Catalina版后,原先安装在/usr/loca/目录下的nginx服务目录在升级时丢失,只能再装一次,这次安装目录选择为/Users/mac/service/nginx目录下。具体步骤为:下载 Nginx 源码包下载页: http://nginx.org/en/download.html当前稳定版本: http://nginx.org/download/n...

2020-05-04 21:41:30 652

原创 坑爹的苹果Catalina系统

昨天手贱了一次,把家用的MAC系统升级到了Catalina,花了半个小时左右升级完后,再次进入系统后发现原先安装在/usr/local/nginx/目录下的nginx目录整个都不见了,包括目录下的一堆历史和个人项目的配置文件!只知道Catalina加强了/usr/local/目录权限,但没说升级时会删除/usr/local/原先安装的其它应用服务目录,真坑爹。...

2020-05-04 18:45:26 4268

原创 mac下为php7.4.5安装swoole4.5.0扩展时所遇到的问题及解决方案

之前已成功在本机把PHP版本从7.3.15升级到了php7.4.5,具体编译参数可见之前的一篇文章。一如即往的从我有道云笔记中找到原先为其它PHP7.3.15版本安装swoole的记录,直接把原先的参数复制过来了# sudo /Users/mac/service/php745/bin/phpize # sudo ./configure --enable-openssl --enable...

2020-05-01 17:59:54 1875

原创 MAC下为php7.4.5安装phalcon4.0.5扩展时遇到libtool版本不匹配的问题及解决方案

在运行:sudo ./install --phpize /Users/mac/service/php745/bin/phpize --php-config /Users/mac/service/php745/bin/php-config命令后报:glibtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure....

2020-05-01 16:31:19 1295

原创 mac下编译安装php7.4.5及相关扩展安装

php7.4.5下载地址:https://www.php.net/distributions/php-7.4.5.tar.gz编译参数:./configure --prefix=/Users/mac/service/php745 --with-config-file-path=/Users/mac/service/php745/etc --with-config-file-scan...

2020-04-28 17:47:28 5980 2

原创 laravel7.4安装spatie/laravel-permission报错

laravel版本号:7.4安装spatie/laravel-permission报错按照其官方的安装说明,在运行$ php artisan migrate命令时报的错:ExceptionError: config/permission.php not found and defaults could not be merged. Please publish the packa...

2020-04-23 18:45:35 674

原创 为IntelliJ IDEA安装EmmyLua插件

最近迷上了lua,由于之前在学习java时已经安装了IntelliJ IDEA,就在IntelliJ IDEA的基础上安装了lua的插件:EmmyLuaIntelliJ IDEA版本号:2019.2.2 (Community Edition)emmylua官网给出了两种安装方式,一种是从插件仓库安装,另一种是从https://plugins.jetbrains.com/plugin/976...

2020-03-31 14:45:46 6075

原创 CentOS 7.6下安装redis5.0.7

安装之前先强烈建议:1、redis勿开启公网连接,只开启本机或内网IP连接2、修改默认6379端口号为其它端口号,如果服务器用的是云服务商,如阿里云或腾讯云安全组策略中的入站规则中也不能打开端口号3、必须设置复杂连接密码否则中了挖坑病毒CPU被占完时,就自己手动清除吧。1、添加用户# groupadd redis# useradd -g redis -r -M ...

2020-01-06 15:57:24 552

原创 CentOS 7.6下解压安装(非编译安装)mysql8.0.18

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18-el7-x86_64.tar.gz1、建立mysql用户# groupadd -r mysql# useradd -g mysql -r -M -s /sbin/nologin mysql //这个mysql用户不能登录2、解压安装# tar zx...

2020-01-06 15:42:05 742

原创 phalcon从3.4版本升级到4.0版本不兼容变化汇总

在2019-11-22日phalcon官方发布了4.0正式版,具体变化可参考https://github.com/phalcon/cphalcon/releases说明:安装4.0前必须先安装psr扩展,且在php.ini中引入的psr.so要在phalcon.so之前引入,如:extension=psr.soextension=phalcon.so附mac下安装为php7.3.1...

2020-01-04 20:29:02 3900

原创 苹果支付最新变化:苹果普通内购支付和会员订阅支付凭证数据混合返了

今天发现线上简影APP购买金币的功能在用户支付成功后未充金币成功,查看日志发现苹果把普通内购数据和会员订阅数据凭证放在一起返回了,导致存储凭证的字段长度超过设计长度,存储失败。印象中原先普通内购的凭证解密后in_app中只有一条记录,直接取第一条处理就行;订阅的凭证解密后in_app一般会有多条记录(包括历次购买的),一般只会取最新的一条处理。原先金币购买的凭证解密后是这样的:{ ...

2019-12-25 12:59:32 1252

原创 阿里云OSS存储STS临时授权报ClientException: Speicified endpoint or uri is not valid

负责运维的一台服务器上面跑的PHP写的api接口服务,代码最近一年多都未改动,突然报:ClientException: Speicified endpoint or uri is not valid果断提工单,客服一会回复让把endpoint设置为sts.aliyuncs.com一会又让提供各种信息,折腾了好久后网上搜到了https://www.jianshu.com/p/3cb80949...

2019-12-16 19:04:21 1506

原创 最简代码计算两个文件相对路径

<?php /** * 计算文件2相对于文件1的相对路径 * * @param string $file1 文件1的绝对路径 * @param string $file2 文件2的绝对路径 * @return string 文件2相对于文件1的相对路径 */ function getRelativePath($...

2019-10-12 14:17:04 309

翻译 【算法】字符串循环移位后是否包含

给定两个字符串s1和s2,要求判断s2是否能够被通过s1做循环移位(rotate)得到的字符串包含。 例如,s1=AABCD和s2=CDAA,返回true;给定s1=ABCD和s2=ACBD,返回false。今天做笔记题遇到类似上面的一题,之后网上搜了下其实是leetcode上的,看来面试是要刷下leetcode,不然现场想太仓促。以AABCD为例,一次完整的循环移位分别是:AA...

2019-06-25 20:12:16 491

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除