首先感谢您考虑使用Coodo Pay,如果您在安装过程遇到了任何问题,都欢迎在issue区提问。本项目地址
下载项目源码
按照图示下载代码并解压到您常用的文件夹。
注册 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 按钮
修改代码参数
进入到刚才提到的 back-end 目录,使用任意文本编辑器打开config.js这个文件。
用刚才点击 Copy 按钮复制的链接,替换掉connection后面的mongodb+srv开头的那段代码,注意不要替换掉链接两边的双引号,然后把链接里 <password>,替换成自己刚才注册的用户的密码,注意两边的尖括号也要替换到。这样就配置好了云数据库
然后需要添加自己的密匙,就也是代码上方的 secret 后面的内容,这个密匙会被用于账号的登录验证和密码的加密,密匙注意不要过于简单,同时不要动两边的双引号。
安装宝塔面板
首先介绍一下宝塔面板,宝塔面板Linux平台上的一款运维工具,它提供了众多运行监控和安全防护的插件,让Linux小白也可以快速搭建网站。目前市面上有众多的Linux服务器提供商,您可以根据自身的需求挑选,这里仅介绍几种廉价或者免费服务器的获取方式,但如果希望服务可以长期稳定运行还是推荐付费购买。
-
甲骨文云为所有用户提供两台永久免费的低配Linux服务器,但做好账号被随时删除的心理准备。
-
阿里云和腾讯云为24岁以下的用户提供廉价服务器,每月10元左右。
-
阿里云国际版,Azure,AWS,Google Cloud Platform 都会为新用户提供一定的免费额度,但注册有一定难度。
使用您心怡的SSH工具上连接服务器,输入以下命令获取管理员权限
sudo su
参考这里的链接,点我前往,选择您的服务器系统对应的一键脚本,粘贴到SSH工具回车,经过一段时间的等待,你就可以在屏幕上看到,宝塔面板的外网面板地址,账号和密码。登录成功之后,它会让您选择需要安装的服务,这里选择左边包含 Nginx 的服务。
安装完成之后,点击侧边栏安全,放行3001端口,同时在服务器商那里也要放行3001端口。
点击侧边栏中的网站,然后添加站点,域名填写你的域名,然后提交。
点击设置,再点击弹窗中的配置文件,在server name的后面插入以下代码
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
然后点击网站目录,运行目录选择 /public
如果需要配置https,就再点击配置文件下面的SSL,推荐使用Let's Encrypt 签发的证书。
接下来上传网站源码
点击网站的根目录,然后点击上传
打开backend文件夹,选中所有文件和文件夹拖拽到上传框中,完成上传。
这时点击侧边栏中的软件商店,在输入框中输入pm2,可以看到一个叫pm2管理器的搜索结果,点击安装。
点击PM2管理器的设置,然后在项目列表中
项目所在根目录,点击右边的目录按钮定位到刚才创建的网站的根目录,启动文件名称填 app.js,项目名称随意填写。点击添加,这时需要等待一定时间,pm2管理器正在安装项目所需的依赖。安装完成后点击映射,在弹窗中填入你的域名。
然后到你的域名提供商,为你的域名添加 A 记录,记录值就是你服务器的ip地址。
等待一定时间,让DNS记录生效,就可以通过这个域名访问你的网站了。
注册管理员账号
在浏览器中输入
<你的域名>/#/install
就会进入到注册管理员页面,如下
然后根据提示,填写账号密码和回答安全问题就可以,点击登录按钮去登录了。
登录成功之后,可以看到如下页面
配置支付信息
点击支付设置,进入到如下页面
这里有4个选项需要填写,分别是应用 ID、支付宝公匙、应用私匙、服务器域名,首先假定您已申请并通过了支付宝当面付审核。
支付宝当面付申请流程可以参考这个链接:点我前往
接下来需要使用支付宝的官方工具生成应用公钥和应用私钥,工具下载地址
下载安装之后,启动该工具,选择RSA2加密和非JAVA适用,再点击生成密钥,就会生成两个包含应用公钥和私钥的txt文件。然后登陆支付宝开发者平台,点击顶部的开发者中心
进入如下页面
点击签约的这个应用,并点击左边侧边栏的应用信息,进入如下页面
点击设置接口加签方式,弹窗会要求你验证手机号,然后输入刚才生成的应用公钥,生成支付宝公钥。应用ID 在上面页面的左上角。
有了应用ID,支付宝公钥和应用私钥,就可以填入刚才的支付设置中的表格,服务器域名填入你的域名,就可以提交了
PayPal只需到paypal开发者中心,注册开发者账号, 点我前往,先点击Live,再点击App name,就可以看到你的 Client ID 和 Secret,将其填入PayPal对应的方框中即可。需要注意的是PayPal仅支持美元付款,购买商品时,系统会根据当时的人民币兑换汇率,对价格进行转换。
批注 2020-10-02 002733.jpg配置邮箱信息
点击邮箱设置进入如下页面
163邮箱的授权码申请可以参考这个链接 点我前往
输入你的QQ邮箱和QQ邮箱授权码,授权码申请可以参考这个链接 点我前往
配置完发件人昵称就可以保存提交了
上架商品
点击管理进入如下页面:
点击新增商品,添加商品,进入如下页面
按照提示填写完商品的相关信息,就可以点击前往商品页,查看商品的支付页面了
完成
复制并分享商品页的 url 地址,用户就可以通过这个url地址购买你的商品,每个商品都有单独的销售链接,在商品页的右上角有查询订单功能,支持通过本地缓存,订单号,支付时的提供的邮箱密码查询订单信息。点击右上角的联系方式会显示注册商品时填写的联系方式。至此整个搭建流程就结束了,如果您对哪一步有了疑问,欢迎在本项目github的issue区提出。
本项目地址
补充-如何安装后续更新
在账户设置中检查更新,得到新版本更新提醒之后,重新下载源码,然后按照之前修改代码的方式,修改需要修改的地方,重新部署,原来的数据都保存到了数据库,重新部署不会对之前的数据有影响。
补充-如何验证会员码商品的会员码
购买你会员服务的用户将会获得一个17位的会员码,你可以在自己的应用或网站中集成会员码激活功能,当用户输入会员码之后,可以向以下 api 发送一个post请求,请求体为{code:"会员码"}格式
<你的域名>/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
}
后记
本教程由于篇幅限制,不能做到面面俱到,如果您有什么疑惑的地方,欢迎到本项目的 issue 区提出,我会尽力解决。
本项目地址
网友评论