Skip to content
/ tobeg Public

叫花子要饭新姿势,简洁优雅,使用 gin 做为后端框架,前端使用 vue + element-ui 构建。

License

Notifications You must be signed in to change notification settings

srcrs/tobeg

Repository files navigation

tobeg

asksowhat

叫花子要饭新姿势,简洁优雅,使用 gin 做为后端框架,前端使用 vue + element-ui 构建。

tobeg

项目说明

目前,该项目仅仅完成了基本功能,还存在着许多不足和 bug ,这些我都会继续完善。下一阶段,准备引入数据库,保存“赏钱”信息。

项目结构

.
├── api #api接口
│   ├── alipay.go
│   ├── flow.go
│   └── tmpl.go
├── cert #证书实体
│   └── cert.go
├── config #配置项实体
│   └── config.go
├── config.yml #配置文件
├── db #db数据库操作
│   └── sqlite3.go
├── docker-compose.yml
├── Dockerfile
├── flow.db #sqlite存储
├── forms
│   └── alipay.go
├── global #全局变量配置
│   └── global.go
├── go.mod
├── go.sum
├── initialize #初始化
│   ├── cert.go
│   ├── config.go
│   ├── logger.go
│   ├── router.go
│   └── sqlite3.go
├── LICENSE
├── main.go
├── middlerwares #中间件
│   └── cors.go
├── model #数据库表实体
│   └── flow.go
├── public #静态文件
│   ├── css
│   │   ├── elementui.index.css
│   │   └── fonts
│   │       ├── element-icons.ttf
│   │       └── element-icons.woff
│   ├── images
│   │   └── favicon.png
│   └── js
│       ├── elementui.index.js
│       ├── jquery.min.js
│       ├── qrcode.min.js
│       └── vue.min.js
├── README.md
├── router #路由配置
│   ├── alipay.go
│   ├── flow.go
│   └── tmpl.go
├── templates #模版引擎
│   └── index.html
└── utils #工具模块
    └── db.go

准备

目前,该项目仅仅对接了支付宝当面支付(支付扫码付款场景理论都支持),需要完成以下几件事

  • 申请开通支付宝当面付功能

  • appId(应用ID)

  • private_key(支付宝私钥)

  • public_content_rsa2(支付宝公钥)

  • app_public_content(应用公钥)

支付宝开通当面付

开通当面付,可参考官方说明进行申请。当面付介绍及准入条件

进入应用管理

当开通完当面付功能之后,进入应用管理页面,点击网页/移动应用,可以看到已经有一个应用,点击进入详情。

红色箭头所指便是 appId(应用ID)

生成密钥

参考支付宝官方文档 生成并配置密钥,这里需要注意的是,生成密钥的流程相同,配置密钥不同的应用界面可能存在差异。

密钥生成之后,会得到两个文件

  • 应用公钥2048.txt

  • 应用私钥2048.txt

应用私钥2048.txt 中的内容便是 private_key(支付宝私钥)

配置密钥

将 应用公钥2048.txt 中的公钥填写在 圈2 位置,填写好之后你就得到了 public_content_rsa2(支付宝公钥)app_public_content(应用公钥)

如果上述表示有不明确之处,可参考支付宝官方文档 当面付接入准备

至此,准备完毕。

配置

tobeg 支持用户在 config.yml 填写自定义配置,配置文件说明

base 模块下主要包含网站一些基础配置如网站图标,标题等等

字段 示例 说明
title "tobeg" 网站的title
url "http://baidu.com" 网站对外访问地址,关乎到支付回调判断,如站点访问地址是 https://google.com ,那么这个字段就要填写为 https://google.com
favicon "favicon.png" 站点图标,存储位置在/public/images/favicon.png,新图片可覆盖也可代替,但要注意这里要与实际图片文件名相同。
toSells 字符串列表 在走马灯处显示
thank "谢谢你, 好人" 支付成功后的提示

alipay 主要是配置支付宝相关的信息

字段 示例 说明
appid "2032423423" 支付宝应用Id
private_key "MIIEpAIBAAKCAQEAsw6yoLZ" 支付宝密钥
public_content_rsa2 "MIIBIjANBgdqhkiG9w" 支付宝公钥
app_public_content "MIIBIjANBgkqhkiG9wfBAQEFA" 应用公钥

server 主要主要配置后端服务的相关信息

字段 示例 说明
port 10020 配置后端服务的启动端口

完整示例

base:
  title: "tobeg"
  url: "http://baidu.com"
  favicon: "favicon.png"
  thank: "谢谢你, 好人"
  toSells:
    - "瞧一瞧、看一看、这里来个穷要饭哎"
    - "大娘好,大爷善,可怜可怜俺这个穷光蛋"
    - "给个摸,给口汤,祝恁长命又健康"
    - "行行好,行行秒,施舍的人呱呱叫"

alipay:
  appid: "2032423423"
  private_key: "MIIEpAIBAAKCAQEAsw6yoLZ"
  public_content_rsa2: "MIIBIjANBgdqhkiG9w"
  app_public_content: "MIIBIjANBgkqhkiG9wfBAQEFA"

server:
  port: 10020

需要注意的是,在 config.yml 配置文件中,你至少要两个地方 base.url 和 alipay 相关的证书信息,至此配置结束。

部署

该项目支持使用Docker-Compose进行部署,推荐自己构建最新镜像,也可以使用我构建的镜像,但可能不是最新的。

自己构建镜像

  • 下载项目
git clone https://github.com/asksowhat/tobeg.git && cd tobeg
  • 运行

相关配置完成之后

docker-compose up -d

这里会产生一个无用镜像,使用下面命令,便可删除

docker rmi $(docker images -f "dangling=true" -q)

使用我的镜像

将下面内容,覆盖 docker-compose.yml

version: "3"

services:
  tobeg:
    image: asksowhat/tobeg:latest
    container_name: tobeg
    restart: always
    ports:
      - 10020:10020
    volumes:
      - $PWD/config.yml:/config.yml
      - $PWD/flow.db:/flow.db
  • 运行
docker-compose up -d

这里有一点要注意的是,如果你在 config.yml 更改了端口配置,需要将 docker-compose.yml 的ports配置,也要做相应的调整。

致谢(不分先后)

About

叫花子要饭新姿势,简洁优雅,使用 gin 做为后端框架,前端使用 vue + element-ui 构建。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published