跳至主要內容

个人开发者收款方案

yczha大约 6 分钟paygo支付宝go收款

摘要

本文介绍一种无需营业资质,也无需挂靠第三方的个人开发者收款方式,资金实时到账个人账户,没有中间商赚差价。同时提供一个现成的 Go 应用供使用,仅需配置自己的账户信息即可一键部署自己的支付服务。

前言

个人开发者想要实现收款,有几种典型途径:

下面就来介绍这种实现方式!

申请开通

alipay-create-app
alipay-create-app
alipay-app-pay
alipay-app-pay
alipay-app-setting
alipay-app-setting
alipay-app-appid
alipay-app-appid

现在,所有准备工作完成!

运行代码

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
}

Have fun!!!