首先感谢您考虑使用 Coodo Pay,这是一个小白向的教程,力求把每一步都以截图的方式展示出来,但仍然需要您掌握了基本的git 操作命令,并且本地配置好了git的运行环境,这里提供一些文章供您参考:
下载项目源码
选择一个您常用的文件夹,按住shift键,同时点击鼠标右键,在弹出的菜单里选择 在此处打开PowerShell 窗口 运行以下命令。
git clone https://github.com/troyeguo/coodo-pay.git
注册 Heroku
首先简单介绍一下 Heroku ,Heroku 是一家美国的 PaaS 应用服务商,不同于传统的 Iass 服务商,它不提供预装各种系统的服务器,而是提供运行你服务的容器,你无需考虑服务器配置,无需考虑服务器维护,平台服务商会自动根据你的实际业务需求,弹性的决定为你分配多少计算资源,在无人访问时,它会自动休眠你的应用,有人访问时,又会快速恢复你的应用。
Heroku 为免费用户提供每个月450小时的使用时长,绑定信用卡之后会额外再增加550小时
点击 Heroku 注册地址 进去之后你会看到以下页面,如果网页一直处在加载状态,请使用科学上网工具
注册并验证完邮箱之后,进入到以下页面
点击右上角的 New 选择 create new app ,之后进入以下页面
App name 和 region 根据自己需求填写,请记住这个App Name,等下会用上,然后点击create app,进入以下页面
这里它提供三种部署方式,我们选择 Heroku Git 的方式部署
首先前往 下载地址 下载你操作系统的部署工具,安装完成之后,到之前项目源码中 back-end 目录,按照之前的方式,打开 Powershell 命令行工具,输入以下代码并回车:
heroku login
根据提示登录自己的 heroku 账号
注册 Mongodb Altas
首先介绍一下 Mongodb Altas,这是 Mongodb 官方提供的云数据库服务,传统的数据库需要在服务器上安装相应的软件,配置好账号,密码,端口之后才能使用,云数据库提供一个远程的数据库链接,通过这个链接就能对其进行增删改查的操作。
Mongodb Altas 为免费用户新建的每个项目提供一个免费的数据,
点击 Mongodb 注册地址,进去之后会看到以下页面
注册并验证完邮箱之后,进入到以下页面
如果你不是这个页面,就点击左上角的 CONTEXT 按钮,选择 Organization 就进入到这个页面了。
点击右上角的 New Project ,进入以下页面
填写完项目名之后,点 Next ,进入下一页面,直接点 Create Project ,进入以下页面
点击 Build a Cluster ,进入以下页面
选择免费方案,进入以下页面
直接点击 Create Cluster,进入以下页面
经过几分钟的等待就完成云数据库的创建,看到以下页面
点击 CONNECT 按钮,弹出以下窗口
点击右边 Add a Different IP Address ,在输入框中输入 0.0.0.0,这样就可以从任意 ip 访问这个数据库,然后创建新用户,输入用户名和密码,注意密码不能过于简单,然后点击 Choose a connect method ,点击第二个 Connect your application ,进入以下页面
它默认选好的 Node.js 和 3.0 or later,这个不用改,然后点 Copy 按钮
修改代码参数
这里推荐一下 vs code 这个代码编辑器,这是微软官方出的免费开源的代码编辑器,后面的操作都会以这个软件为例进行展示,如果您本地装了其他支持文件夹全局搜索代码片段功能的编辑器,也同样适用。
安装完成之后,进入到刚才提到的 back-end 目录,鼠标右键,在菜单中选择 Open With Code,您也可以直接打开 vs code ,然后在键盘上输入 Ctrl + O,选择打开back-end 文件夹,然后你会看到以下页面
点击左边侧边栏,第二个搜索按钮,在输入框中输入 mongodb+srv 并回车,点击第一个搜索结果,看到如下页面
用刚才点击 Copy 按钮复制的链接,替换这个链接,注意不要替换掉链接两边的双引号,然后把链接里 <password>,替换成自己刚才注册的用户的密码,注意两边的尖括号也要替换到。这样就配置好了云数据库
然后需要添加自己的密匙,就也是代码上方的 secret 后面的内容,这个密匙会被用于账号的登录验证和密码的加密,密匙注意不要过于简单,同时不要动两边的双引号。
接下来还有最后一处要修改,再次点击搜索按钮,然后点击输入框左边的尖括号,这样就触发了搜索并替换的功能,在第一个输入框输入 coodopay,按回车键,会搜出两个搜索结果,然后在第二个输入框中输入刚才创建 Heroku app 时填写的 App Name,在键盘上输入Ctrl + Alt + Enter,会弹出弹窗,询问是否替换,选择 Replace(替换),这样就完成了所有的代码替换工作,可以关掉vs code了
上传代码到 Heroku
再次回到 back-end 文件夹,用之前的操作方式打开Powershell 命令行工具,输入以下代码:
heroku git:remote -a 你刚才注册的App Name
不要着急回车,还要修改代码后面的内容然后回车,接下来输入以下代码并回车:
git add .
git commit -am "make it better"
git push heroku master
随后就会开始整个部署过程,大概要2到3分钟,当命令行回到光标闪动的状态就表示部署完成了
注册管理员账号
在浏览器中输入
https://你刚才注册的App Name.herokuapp.com/#/install
就会进入到注册管理员页面,如下
然后根据提示,填写账号密码和回答安全问题就可以,点击登录按钮去登录了。
登录成功之后,可以看到如下页面
配置支付信息
点击支付设置,进入到如下页面
这里有4个选项需要填写,分别是应用 ID、支付宝公匙、应用私匙、服务器域名,首先假定您已申请并通过了支付宝当面付审核。
支付宝当面付申请流程可以参考这个链接:点我前往
接下来需要使用支付宝的官方工具生成应用公钥和应用私钥,工具下载地址
下载安装之后,启动该工具,选择RSA2加密和非JAVA适用,再点击生成密钥,就会生成两个包含应用公钥和私钥的txt文件。然后登陆支付宝开发者平台,点击顶部的开发者中心
进入如下页面
点击签约的这个应用,并点击左边侧边栏的应用信息,进入如下页面
点击设置接口加签方式,弹窗会要求你验证手机号,然后输入刚才生成的应用公钥,生成支付宝公钥。应用ID 在上面页面的左上角。
有了应用ID,支付宝公钥和应用私钥,就可以填入刚才的支付设置中的表格,服务器域名填写
https://你刚才注册的App Name.herokuapp.com
就可以提交了
PayPal只需到paypal开发者中心,注册开发者账号, 点我前往,先点击Live,再点击App name,就可以看到你的 Client ID 和 Secret,将其填入PayPal对应的方框中即可。需要注意的是PayPal仅支持美元付款,购买商品时,系统会根据当时的人民币兑换汇率,对价格进行转换。
批注 2020-10-02 002733.jpg配置邮箱信息
点击邮箱设置进入如下页面
,163邮箱的授权码申请可以参考这个链接 点我前往输入你的QQ邮箱和QQ邮箱授权码,授权码申请可以参考这个链接 点我前往
配置完发件人昵称就可以保存提交了
上架商品
点击管理进入如下页面:
点击新增商品,添加商品,进入如下页面
按照提示填写完商品的相关信息,就可以点击前往商品页,查看商品的支付页面了
完成
复制并分享商品页的 url 地址,用户就可以通过这个url地址购买你的商品,每个商品都有单独的销售链接,在商品页的右上角有查询订单功能,支持通过本地缓存,订单号,支付时的提供的邮箱密码查询订单信息。点击右上角的联系方式会显示注册商品时填写的联系方式。至此整个搭建流程就结束了,如果您对哪一步有了疑问,欢迎在本项目github的issue区提出。
本项目地址
补充-如何安装后续更新
得到新版本更新提醒之后,在 coodo-pay 文件夹,使用 Powershell 执行以下命令:
git remote add upstream https://github.com/troyeguo/coodo-pay.git
git fetch upstream
git merge upstream/master
然后按照之前修改代码的方式,修改需要修改的地方,重新部署,原来的数据都保存到了数据库,重新部署不会对之前的数据有影响。
补充-绑定个人域名
Heroku 为每一个应用都提供了绑定自定义域名的功能,在应用的 setting 中,向下滚动可以看到 add domain 选项,填写完你需要绑定的域名后就会生成一个CNAME的记录值,就可以到你的域名托管商处添加CNAME 记录了,以后你就可以使用这个域名访问你的商品页和后台管理系统。
补充-使 Heroku App 不进入休眠状态
正常情况下,Heroku 会休眠30分钟内无访问记录的免费应用,当你再次访问时,就会需要额外的几秒钟用于唤醒 Heroku 应用,这不利于提升用户体验,你当然可以通过购买付费服务的方式,来使自己的应用始终处于唤醒状态,但还可以通过定时发送 http 请求的方式来实现同样的效果,这里介绍一个叫 Uptime Robot 的网站,它就可以实现上述功能,并且是免费的。访问地址 自行注册并验证邮箱之后,到控制面板,添加你的应用的网址,并设定定时访问的时间间隔。
需要说明的是,如果应用24小时处于唤醒状态,非实名认证用的免费时长肯定不够用,认证完之后就可以获得每个月1000小时的时长。
补充-用 Cloudflare 加速访问
Heroku只提供了美国和欧洲的服务器供选择,所以在国内的访问速度可能不太理想,可以通过绑定托管到Cloudflare的域名的方式,提升网站的访问速度,Cloudflare提供免费的全球CDN,可以有效加速国外的服务器访问。
补充-如何验证会员码商品的会员码
购买你会员服务的用户将会获得一个17位的会员码,你可以在自己的应用或网站中集成会员码激活功能,当用户输入会员码之后,可以向以下 api 发送一个post请求,请求体为{code:"会员码"}格式
https://你刚才注册的App Name.herokuapp.com/api/order/verify
当验证成功之后,就会返回如下格式的数据
{
date //2020-3-28格式
time //PM7:51:04格式
code //会员码
email //支付时填写的邮箱
activation //会员码激活状态(“已激活”或“未激活”)
year //年
month //月
day //日
week //星期,0代表星期日,依此类推
price //支付金额
paymentStatus //支付状态
password //支付时填写的密码
payment //支付途径
ip //支付时的ip地址
productId //商品id
orderId //订单编号
productName //商品名称
levelName //会员等级
noInvoice //商户订单号
}
未找到会员码则返回401错误,message内容为”未找到订单信息“
您就可以根据以上数据判断应该向用户提供什么样的类型
补充-非会员码商品订单验证
当用户购买非会员商品时,Coodo Pay会向您创建商品时填写的订单回调地址发送两次请求,第一次会发送如下格式的信息,需要您验证购买者的身份:
{
email: coodopay@102410.xyz,
password: 123456
}
用户身份验证成功之后,需要您的服务器返回:
{
accountVerified: true,
}
用户身份验证失败之后,需要您返回:
{
accountVerified: false,
}
第二次请求会在用户支付成功之后发送,发送内容和上面如何验证会员资格一节中的订单信息一致,这时需要您的服务器返回以下格式的数据:
{
orderVerified: true
}
补充-绑定信用卡增加每月时长
未实名认证,即未绑定信用卡的用户每月有450小时的使用时长,正常情况下完全够用,但你也可以绑定自己的信用卡来增加使用时长到每月1000小时。但只能绑定 Visa 或者 Mastercard,不能绑银联卡。
补充-部署到 Linux 服务器
大致介绍一下如何将本项目运行到 Linux 服务器,在back-end文件夹使用 yarn 命令安装所有的依赖,然后把整个back-end文件夹添加到一个压缩包,大概20多M,在 Linux 服务器上安装 node 和 nginx ,然后添加node 和 npm 的软链接,执行如下命令全局安装 pm2
npm i pm2 -g
添加 pm2 的软链接,使用 ftp 或者 scp 将压缩包上传到服务器的指定目录,并解压,修改 nginx.conf 的相关参数,使80端口指向back-end文件夹的public目录,同时修改 /api/的请求,代理到本地的3001端口。执行以下命令,启动服务
pm2 ./bin/www
具体操作可以参考这个链接:点我前往
后记
本教程由于篇幅限制,不能做到面面俱到,如果您有什么疑惑的地方,欢迎到本项目的 issue 区提出,我会尽力解决。
本项目地址
网友评论