Zach Ke's Notes

Quick notes


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

创建PayPal沙盒模式并测试支付流程

发表于 2019-05-24 | 分类于 支付相关 | | 阅读次数:

前前言

最近一直想要整理整个项目的支付相关的文档,所以就翻了一下以前的一些笔记,发现一些不涉及到业务流程相关的实践教程和踩过的坑都挺有用的,就想着干脆写到 blog 算了,顺便充实一下 blog,毕竟最近比较忙,都很久没有更新了,只能拿一些之前的存货出来充场面了 XD。

这才是前言

测试 PayPal 的时候,会在 PayPal 的沙盒模式里面支付,这时候就需要沙盒账号。PayPal 的沙盒账号只要有自己的账号就可以创建了,不需要特意到线上收款的那个 PayPal 账号那边创建, 而且是全网通用的。所以我只要自己创建一个个人的PayPal账号,那么就可以在上面创建其他的沙盒账号了。而且为了考虑测试沙盒环境下的跟踪,比如 webhook 的 resend,以及 api 的调用查看,我也需要单独创建一个个人账号的沙盒,以便测试环境可以更好的调试。

创建自己的PayPal账号

首先要选择创建的国家是 美国, 而且是个人账号。

阅读全文 »

Gitlab 强制推送提示 "You are not allowed to force push code to a protected branch on this project."

发表于 2019-04-18 | 分类于 git 操作 | | 阅读次数:

前言

之前有出现过一个情况,就是 master 分支有改了一些东西,但是发现这些东西有问题,这时候要回滚到 master 的某一个 commit 版本:

1
git rest --hard xxxx

这时候就将这个分支回滚到之前的某一个 commit 了。 但是这时候直接

1
git push origin

是不行的。 会显示远端的版本比当前版本高,所以只能用 -f 来强制 push 上去。

1
git push -u origin master -f

但是发现还是报错:

阅读全文 »

前端工具集(15) -- 节流和防抖

发表于 2019-04-17 | 分类于 前端工具集 | | 阅读次数:

前言

防抖和节流的作用都是防止函数多次调用。区别在于,假设一个用户一直触发这个函数,且每次触发函数的间隔小于wait,防抖的情况下只会调用一次,而节流的 情况会每隔一定时间(参数wait)调用函数。

防抖 debounce

防抖的原理就是:你尽管触发事件,但是我一定在事件触发 n 秒后才执行,如果你在一个事件触发的 n 秒内又触发了这个事件,那我就以新的事件的时间为准,n 秒后才执行,总之,就是要等你触发完事件 n 秒内不再触发事件,我才执行。
一般试用的场景就是:

  • window 的 resize 和 scroll
  • input 的 keyup 或者 input 事件
  • 其他,比如按钮的防二次点击
阅读全文 »

同一台 PC 使用 SSH key 管理 gitlab 和 github 的提交

发表于 2019-04-16 | 分类于 git 操作 | | 阅读次数:

前言

通过 gitlab 生成并使用 ssh keys 我们就在 gitlab 上用 ssh key 去进行命令行提交代码了。但是有时候会有一些个人项目也在这台PC上,但是这时候传的就不是项目的内部私有代码库gitlab了。而是 github。
那么要怎么在同一台 PC 同时对 gitlab 和 github 进行不同项目的代码 git 操作呢,比如 push 之类的?

阅读全文 »

gitlab 生成并使用 ssh keys

发表于 2019-04-16 | 分类于 git 操作 | | 阅读次数:

前言

我们代码托管用的是 gitlab,但是发现在 IDE 中,在 push 的时候,需要输入 gitlab 的密码?
1

阅读全文 »

如何在 WAMP 设置 https

发表于 2019-04-10 | 分类于 前端相关 | | 阅读次数:

前言

之前有一个需求,就是要把某一个站点使用https,所以有时候需要在本地开发环境也要有https环境,因为本地是用 WAMP 搭的,所以就配了一下。 我当时的系统是 windows 7, 32 bit的。

创建自己定义的 ssl 证书

打开dos 窗口,定位到apache所在的bin目录:

阅读全文 »

windows7 通过 docker 来实现多个 golang 版本并存

发表于 2019-03-01 | 分类于 docker相关 | | 阅读次数:

前言

通过 使用 docker 来让多个 golang 环境并存并实现多版本打包和编译 我们已经可以在服务器上通过 Docker 来实现多个 golang 版本的并存。 但是我的平时开发环境有一台是 windows7,这台机器有时候也会需要跑 go 程序,所以在这台 windows7 上也会有安装多个 golang 版本的需求。
我的 windows7 本来就有安装 golang 版本了,不过是比较旧的版本,1.7.4:

1
2
3
admin@admin-PC MINGW64 /f/airdroid_code/go/src
$ go version
go version go1.7.4 windows/amd64

所以我打算也通过 Docker 也安装一个容器来装载一个比较新的 golang 版本,比如 1.10 或者更新。有些比较细的,之前就有在 使用 docker 来让多个 golang 环境并存并实现多版本打包和编译 讲过了,这边就不细讲了,这边只讲差异点。

阅读全文 »

使用 docker 来让多个 golang 环境并存并实现多版本打包和编译

发表于 2019-02-28 | 分类于 docker相关 | | 阅读次数:

前言

现在我们使用 CI/CD 是通过 gitlab + Jenkins 的方式, 也就是无论是部署到生产环境还是部署到测试环境,都会通过一台叫做部署Jenkins的构建/部署服务器。
以Golang程序的部署来说,比如我要将一个go程序更新部署到测试环境,那么通过 gitlab 的项目分支构建的 webhook,会触发到 Jenkins 对应的构建任务,这时候 Jenkins 就会去 pull gitlab 对应的项目代码,然后开始打包编译成二进制文件,最后在上传到对应的测试服,然后执行测试服的脚本,比如 supervisor 脚本,然后将这个二进制程序启动起来。
但是现在我们 Jenkins 打包服务器上面的 golang 环境还是比较旧的版本,而且是直接装在服务器上的,只有一个版本,现在为了提高 golang 程序的执行效率和使用更新的语法,我后面打算慢慢将 golang 的版本升级上来,但是因为我们的 go 服务实在太多,而且有复杂的,也有简单的。 所以刚开始不可能一下子就把所有的go版本全部升上来,这样风险太大,所以肯定会有一部分的 go 程序还是用的旧版本,但是一部分 go 程序已经要换成新版本了。
所以这个也就要求 Jenkins 打包服务器上,要并存多个 golang 版本的环境,并且 src 还不能共用,并且还要支持同一时间的多个不同的 golang 版本的程序一起构建。

阅读全文 »

Docker Volume - 目录挂载以及文件共享

发表于 2019-02-25 | 分类于 docker相关 | | 阅读次数:

前言

Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume)。数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享。数据卷呈现给Docker容器的形式就是一个目录,支持多个容器间共享,修改也不会影响镜像。使用Docker的数据卷,类似在系统中使用 mount 挂载一个文件系统。

Docker文件系统工作情况

想要了解Docker Volume,首先我们需要知道Docker的文件系统是如何工作的。Docker镜像是由多个文件系统(只读层)叠加而成。当我们启动一个容器的时候,Docker会加载只读镜像层并在其上(镜像栈顶部)添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所隐藏。当删除Docker容器,并通过该镜像重新启动时,之前的更改将会丢失。在Docker中,只读层及在顶部的读写层的组合被称为Union File System(联合文件系统)。

阅读全文 »

docker 容器内使用宿主机的代理配置

发表于 2019-02-22 | 分类于 docker相关 | | 阅读次数:

前言

之前在用docker安装golang 版本的时候,有出现过一种情况,就是宿主机有设置代理,但在docker的容器内(container)下载golang依赖资源的时候,却不能使用宿主机的代理设置,所以下载依赖就会失败。
举个例子,我run了一个 docker 的容器,基于 go10.1 这个go版本。

1
[root@VM_156_200_centos docker-go1.10]# sudo docker run -it  --name golang-1.10-1  kbz/golang-1.10

然后我把宿主机的 go 程序的代码放到这个容器里面的 GOPATH 路径的 src 目录,最后跑起来,但是因为没有安装依赖,所以会报错:

1
2
3
4
5
6
7
8
9
10
11
12
[root@VM_156_200_centos docker-go1.10]# docker cp /root/go/src/goworker golang-1.10-1:/go/src/
[root@VM_156_200_centos docker-go1.10]# docker exec -it golang-1.10-1 /bin/bash
root@4943d5f1558c:/app# cd /go/src
root@4943d5f1558c:/go/src# ls
go_learn_demo goworker
root@4943d5f1558c:/go/src# cd goworker/
root@4943d5f1558c:/go/src/goworker# ls
hello_worker.go worker worker.go
root@4943d5f1558c:/go/src/goworker# go run *.go
hello_worker.go:5:2: cannot find package "github.com/benmanns/goworker" in any of:
/usr/local/go/src/github.com/benmanns/goworker (from $GOROOT)
/go/src/github.com/benmanns/goworker (from $GOPATH)

阅读全文 »

docker 升级到最新版

发表于 2019-02-22 | 分类于 docker相关 | | 阅读次数:

前言

之前在 docker 容器内使用宿主机的代理配置 需要将 docker 升级到最新版本,所以这边弄一下,我是 CentOS 7 系统

卸掉旧的

首先找出主机上所有 docker 的包,然后卸掉:

1
2
3
4
[root@VM_156_200_centos ~]# rpm -qa | grep docker
docker-common-1.13.1-91.git07f3374.el7.centos.x86_64
docker-1.13.1-91.git07f3374.el7.centos.x86_64
docker-client-1.13.1-91.git07f3374.el7.centos.x86_64

然后分别卸掉,用 remove 指令:

1
2
3
[root@VM_156_200_centos ~]# yum remove docker-common-1.13.1-91.git07f3374.el7.centos.x86_64
[root@VM_156_200_centos ~]# yum remove docker-1.13.1-91.git07f3374.el7.centos.x86_64
[root@VM_156_200_centos ~]# yum remove docker-client-1.13.1-91.git07f3374.el7.centos.x86_64

阅读全文 »

使用 docker 运行 golang 程序

发表于 2019-02-14 | 分类于 golang相关 | | 阅读次数:

前言

最近打算将之前项目中的go程序放到docker来维护和管理,所以打算写个简单的demo来看看效果。
docker 基于 Golang 开发,已经不用解释了,而 Golang 天生适合运行在 docker 容器中,却不是这个原因,这得益于:Golang 的静态编译,当在编译的时候关闭 cgo 的时候,可以完全不依赖系统环境。

阅读全文 »

安装 gvm 来管理多个go版本

发表于 2019-02-14 | 分类于 golang相关 | | 阅读次数:

前言

现在项目中的多个go项目还是用的是比较低的版本。所以接下来的计划是打算将这些项目的go版本逐个升级到新版本上来。所以在这个过程中一定会有至少两个不同版本的go并存在主机上。
之前在做 nodejs 的时候,就是用 nvm 来管理和切换 nodejs 的多个版本的, 刚好go也找到一个 gvm, 所以打算先在自己的服务器上先实践一下用 gvm 来安装并管理 go 的多个版本。

阅读全文 »

CentOS7 配置 shadowsocks 全局代理

发表于 2019-02-14 | 分类于 Linux 相关 | | 阅读次数:

前言

之前在使用 gvm 在安装 go 版本的时候(安装 gvm 来管理多个go版本),就有出现因为没法翻墙而导致没办法下载资源的问题。因此 CentOS7 要设置一下代理才行, 因为之前有在腾讯云香港那边搭了一台中转服务器作为国内服务器翻墙的代理服务器。 所以这边直接用 shadowsocks 配置,然后将代理指向那台中转服务器即可。

阅读全文 »

浅谈之-何为全栈

发表于 2018-12-03 | 分类于 前端相关 , 前端浅谈系列 | | 阅读次数:

1

前言

这段时间要在公司内做一个分享,关于全栈的话题,所以我就参考了网上的一些文章,再结合自己这几年的工作,对何为全栈也提出了自己的看法。

全栈是什么

全栈工程师,英文 Full Stack developer,是指那些掌握多种技能,并能利用多种技能独立完成产品的人。当然,现在「全栈工程师」很吃香,非常吃香!这是因为在移动互联网时代,IT 系统变得愈加复杂,需要拥有全局思维的工程师来搞定各种「疑难杂症」。不仅要玩得转前端,还要搞得定后端,总之各种技术都懂,所以其重要性可见一斑。

阅读全文 »

Redash - 安装和初试

发表于 2018-11-28 | 分类于 实用工具集 | | 阅读次数:

前言

当业务成长到一定规模之后,会有许多想看各种不同类型报表的需求,如果单独做在后台,那么无疑会浪费前端和后端开发的时间。所以一直都有在寻找一款好用的BI工具。
后面查了一下,市面上好用的一些非商业的BI工具,主要的是 Superset,Redash, Metabase 这三种。
评测请看:
数据可视化的开源方案: Superset vs Redash vs Metabase (一)
数据可视化的开源方案: Superset vs Redash vs Metabase (二)

阅读全文 »

coturn 输出log没有带日期格式的问题

发表于 2018-11-28 | 分类于 webrtc相关 | | 阅读次数:

前言

通过 webrtc 的 turn 服务器 coturn 的搭建 我们知道自己搭的turn server 可以用于 webrtc 的 turn server转发了,但是后面发现在进行转发的过程中,输出的log,竟然没有带日期格式,也就是说,当我们在看log找问题的时候,根本找不到对应的时间点? 这样可不利于bug排除?

阅读全文 »

Apache 配置虚拟主机的方式

发表于 2018-11-22 | 分类于 前端相关 | | 阅读次数:

前言

我们在进行前端开发的时候,有时候在本地开发的时候,会进行域名host,以便进行绕过服务端的一些CORS校验,这时候我们只需要在hosts文件进行域名host指定即可。
比如本地开发的html路径是:

1
http://127.0.0.1/airdroid_user/intl_web.htm

然后这个页面涉及到登录,然后服务端要求ajax post 的时候,会进行 cors 校验,要求origin一定要 airdroid.com 开头的,这样子开发的时候,就会遇到问题。因此我们需要在hosts进行指向,将 127.0.0.1 改成是 airdroid.com 结尾的,比如:

1
127.0.0.1 zach.airdroid.com

这样就会将本地的 127.0.0.1 指向你设置的那个域名。 就可以登录成功了。

阅读全文 »

VerneMQ 使用docker进行集群部署

发表于 2018-11-19 | 分类于 webrtc相关 | | 阅读次数:

前言

之前在测试环境,已经有进行集群部署了: webrtc 的 signal 服务器 VerneMQ 的集群设置。但是这种部署方式不够灵活,尤其是像后面生产环境要在全球多个点部署好几台,其实很不方便。再加上如果有版本迭代的话,就更不方便了。所以后面考量了一下,决定还是用docker来进行集群部署。
虽然 VerneMQ 有使用docker搭建的教程: 传送门, 但是在使用中,使用 VerneMQ 原生镜像,修改测试文件无效,只能在 run 命令中指定参数,这个就非常长了,所以就使用自定义 Dockerfile ,自己创建镜像。
而且这个 docker 部署集群,会分别在中国区,新加坡,美区,欧洲 四个区域部署。

阅读全文 »

coturn 添加redis实现对转发流量和转发时长的统计

发表于 2018-11-15 | 分类于 webrtc相关 | | 阅读次数:

前言

虽然已经用 coturn 来作为 webrtc 的转发服。 但是我们只做了一个最基本的静态key的加密校验而已。但是对于转发的流量和转发的时长,却没法统计。
但是事实上,对于转发的流量和时长对于我们的业务来说是非常必要的。
刚好 coturn 有提供了一个统计的redis配置,redis-statsdb,这个是就是 turnserver 会将一些统计的数据存到 redis 中。 然后我们去取就行了。
所以要在配置文件里面加上这一个配置:

1
redis-statsdb="ip=59.57.xx.xx dbname=13 port=6379 connect_timeout=30"

阅读全文 »
1…91011…16
Zach Ke

Zach Ke

做最咸的那一条

316 日志
31 分类
83 标签
GitHub
© 2024 Zach Ke
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4