个人开发者收款方案
大约 6 分钟
摘要
本文介绍一种无需营业资质,也无需挂靠第三方的个人开发者收款方式,资金实时到账个人账户,没有中间商赚差价。同时提供一个现成的 Go 应用供使用,仅需配置自己的账户信息即可一键部署自己的支付服务。
前言
个人开发者想要实现收款,有几种典型途径:
下面就来介绍这种实现方式!
申请开通
现在,所有准备工作完成!
运行代码
git clone https://gitee.com/yczha/zpay.git
cd zpay
go mod tidy
# 先编译 web 产出,注意:这里你需要先安装node环境并配置yarn工具
cd web && yarn install && yarn run build && cd ..
# 接下来编译 go 产出包
go build -o dist/zpay main.go
到这里准备好了产出包dist/zpay
!
APP_ENV=local
APP_KEY=zBqYyQrPNaIUsnRhsGtHLivjqiMjBVLS
APP_DEBUG=true
APP_URL=http://localhost:3000
APP_LOG_LEVEL=debug
APP_PORT=3000
ALIPAY_APPID=xxxx
ALIPAY_PRIVATE_KEY_FILE=./.secret/alipay_private_key.pem
ALIPAY_PUBLIC_KEY_FILE=./.secret/alipay_public_key.pem
ALIPAY_NOTIFY_URL=https://xxxx/api/v1/alipay/orders/notify
DB_CONNECTION=sqlite
DB_SQL_FILE=database/zpay.db
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=zpay
DB_USERNAME=xxx
DB_PASSWORD=xxx
DB_DEBUG=2
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_MAIN_DB=1
REDIS_CACHE_DB=0
LOG_TYPE=single
LOG_LEVEL=info
上述配置内容主要需要修改的有两个地方,一是支付宝相关的配置:
二是数据库的配置,可以选择sqlite
或者mysql
,通过DB_CONNECTION
字段来设置。如果选择sqlite
,那么需要设置DB_SQL_FILE
文件存放位置;如果选择mysql
,那么需要设置相应的配置项并自行安装mysql
服务。另外还需要有一个redis
服务,用来做访问控制。通过REDIS_xxx
的选项来配置。
./zpay
应用
准备好服务之后,怎么应用呢?这里推荐两种方式,第一是在需要支付的地方直接通过传递参数来调用,比如我的支付服务地址是https://www.yooongchun.com/zpay
,那么我可以通过给该地址传递参数来实现一键调起支付服务,请求地址如下:
https://www.yooongchun.com/zpay/?title=支付¥1元&redirect=http://localhost:8080/docs/tutorials/zpay/zpay.html&order_name=给文章付费¥1元&amount=1
这个链接中有 4 个参数
实际用起来的效果,你可以通过这个链接体会一下:
第二种使用方式就是把把这个服务作为后台服务,使用 api 接口来调用,后台提供了两个接口,如下:{
"order_name": "客户端订单",
"source": "alipay",
"amount": 1.2
}
成功的响应如下:
{
"data": {
"id": 61,
"order_no": "20230626104511320092223",
"order_name": "客户端订单",
"amount": 1.2,
"qrcode": "https://qr.alipay.com/bax028697okmnbk9msk55559",
"source": "alipay",
"status": "INIT",
"created_at": "2023-06-26T10:45:11.654419723+08:00",
"updated_at": "2023-06-26T10:45:11.654419723+08:00"
},
"success": true
}
/api/v1/alipay/orders/20230626104511320092223
成功的响应如下:
{
"data": {
"id": 61,
"order_no": "20230626104511320092223",
"order_name": "客户端订单",
"amount": 1.2,
"qrcode": "https://qr.alipay.com/bax028697okmnbk9msk55559",
"source": "alipay",
"status": "INIT",
"created_at": "2023-06-26T10:45:11.654419723+08:00",
"updated_at": "2023-06-26T10:45:11.654419723+08:00"
},
"success": true
}