美文网首页
Coodo Pay 搭建教程(Heroku篇)

Coodo Pay 搭建教程(Heroku篇)

作者: zach12138 | 来源:发表于2020-03-28 22:17 被阅读0次

    首先感谢您考虑使用 Coodo Pay,这是一个小白向的教程,力求把每一步都以截图的方式展示出来,但仍然需要您掌握了基本的git 操作命令,并且本地配置好了git的运行环境,这里提供一些文章供您参考:

    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.js3.0 or later,这个不用改,然后点 Copy 按钮

    修改代码参数

    这里推荐一下 vs code 这个代码编辑器,这是微软官方出的免费开源的代码编辑器,后面的操作都会以这个软件为例进行展示,如果您本地装了其他支持文件夹全局搜索代码片段功能的编辑器,也同样适用。

    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 区提出,我会尽力解决。
    本项目地址

    相关文章

      网友评论

          本文标题:Coodo Pay 搭建教程(Heroku篇)

          本文链接:https://www.haomeiwen.com/subject/hmreuhtx.html