ec51e87d2d
A generic multi-client payment gateway so FlatRender, meezi.ir and bargevasat.ir can all pay through ZarinPal's single verified callback domain (pay.flatrender.ir). New Go service services/payment (clones the notification skeleton + vendored deps): - migration 31_payment_broker.sql — `payment` schema: client_apps, transactions, webhook_deliveries. - ZarinPal v4 client ported from the proven identity PaymentService (request.json -> StartPay -> verify.json; codes 100/101). - client API: POST /v1/pay/request + /v1/pay/inquiry, authed by X-Api-Key + HMAC body signature; GET /callback/zarinpal (the single verified endpoint) verifies, then 302s the user back to the site's return_url (signed) and fires a signed, retried webhook. - per-client ZarinPal merchant override (default = shared merchant); amount stored canonically in Rial, unit to ZarinPal env-configurable. - admin API /v1/admin/* (FlatRender admin JWT): client-app CRUD + key issue/rotate + transactions list. Deploy wiring: payment-svc in docker-compose.v2.yml (host port 1607), pay.flatrender.ir server block in mirror-nginx conf, ENV_FILE + README updates (cert SAN + manual migration note). Admin UI: src/components/admin/PaymentsAdmin.tsx (client apps with one-time key reveal + rotate, transactions table) + /admin/payments page + nav link + fa/en strings; pay-admin proxy route to payment-svc. Docs/SDK: deploy/PAYMENTS.md (integration contract) + deploy/sdk/flatpay.js (zero-dep Node client + webhook verifier) for meezi/any site. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
209 lines
7.0 KiB
Plaintext
209 lines
7.0 KiB
Plaintext
# github.com/bytedance/sonic v1.11.6
|
|
## explicit; go 1.16
|
|
github.com/bytedance/sonic
|
|
github.com/bytedance/sonic/ast
|
|
github.com/bytedance/sonic/decoder
|
|
github.com/bytedance/sonic/encoder
|
|
github.com/bytedance/sonic/internal/caching
|
|
github.com/bytedance/sonic/internal/cpu
|
|
github.com/bytedance/sonic/internal/decoder
|
|
github.com/bytedance/sonic/internal/encoder
|
|
github.com/bytedance/sonic/internal/jit
|
|
github.com/bytedance/sonic/internal/native
|
|
github.com/bytedance/sonic/internal/native/avx
|
|
github.com/bytedance/sonic/internal/native/avx2
|
|
github.com/bytedance/sonic/internal/native/neon
|
|
github.com/bytedance/sonic/internal/native/sse
|
|
github.com/bytedance/sonic/internal/native/types
|
|
github.com/bytedance/sonic/internal/resolver
|
|
github.com/bytedance/sonic/internal/rt
|
|
github.com/bytedance/sonic/option
|
|
github.com/bytedance/sonic/unquote
|
|
github.com/bytedance/sonic/utf8
|
|
# github.com/bytedance/sonic/loader v0.1.1
|
|
## explicit; go 1.16
|
|
github.com/bytedance/sonic/loader
|
|
github.com/bytedance/sonic/loader/internal/abi
|
|
github.com/bytedance/sonic/loader/internal/rt
|
|
# github.com/cloudwego/base64x v0.1.4
|
|
## explicit; go 1.16
|
|
github.com/cloudwego/base64x
|
|
# github.com/cloudwego/iasm v0.2.0
|
|
## explicit; go 1.16
|
|
github.com/cloudwego/iasm/expr
|
|
github.com/cloudwego/iasm/x86_64
|
|
# github.com/gabriel-vasile/mimetype v1.4.3
|
|
## explicit; go 1.20
|
|
github.com/gabriel-vasile/mimetype
|
|
github.com/gabriel-vasile/mimetype/internal/charset
|
|
github.com/gabriel-vasile/mimetype/internal/json
|
|
github.com/gabriel-vasile/mimetype/internal/magic
|
|
# github.com/gin-contrib/sse v0.1.0
|
|
## explicit; go 1.12
|
|
github.com/gin-contrib/sse
|
|
# github.com/gin-gonic/gin v1.10.0
|
|
## explicit; go 1.20
|
|
github.com/gin-gonic/gin
|
|
github.com/gin-gonic/gin/binding
|
|
github.com/gin-gonic/gin/internal/bytesconv
|
|
github.com/gin-gonic/gin/internal/json
|
|
github.com/gin-gonic/gin/render
|
|
# github.com/go-playground/locales v0.14.1
|
|
## explicit; go 1.17
|
|
github.com/go-playground/locales
|
|
github.com/go-playground/locales/currency
|
|
# github.com/go-playground/universal-translator v0.18.1
|
|
## explicit; go 1.18
|
|
github.com/go-playground/universal-translator
|
|
# github.com/go-playground/validator/v10 v10.20.0
|
|
## explicit; go 1.18
|
|
github.com/go-playground/validator/v10
|
|
# github.com/goccy/go-json v0.10.2
|
|
## explicit; go 1.12
|
|
github.com/goccy/go-json
|
|
github.com/goccy/go-json/internal/decoder
|
|
github.com/goccy/go-json/internal/encoder
|
|
github.com/goccy/go-json/internal/encoder/vm
|
|
github.com/goccy/go-json/internal/encoder/vm_color
|
|
github.com/goccy/go-json/internal/encoder/vm_color_indent
|
|
github.com/goccy/go-json/internal/encoder/vm_indent
|
|
github.com/goccy/go-json/internal/errors
|
|
github.com/goccy/go-json/internal/runtime
|
|
# github.com/golang-jwt/jwt/v5 v5.2.1
|
|
## explicit; go 1.18
|
|
github.com/golang-jwt/jwt/v5
|
|
# github.com/google/uuid v1.6.0
|
|
## explicit
|
|
github.com/google/uuid
|
|
# github.com/jackc/pgpassfile v1.0.0
|
|
## explicit; go 1.12
|
|
github.com/jackc/pgpassfile
|
|
# github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
|
|
## explicit; go 1.14
|
|
github.com/jackc/pgservicefile
|
|
# github.com/jackc/pgx/v5 v5.7.1
|
|
## explicit; go 1.21
|
|
github.com/jackc/pgx/v5
|
|
github.com/jackc/pgx/v5/internal/iobufpool
|
|
github.com/jackc/pgx/v5/internal/pgio
|
|
github.com/jackc/pgx/v5/internal/sanitize
|
|
github.com/jackc/pgx/v5/internal/stmtcache
|
|
github.com/jackc/pgx/v5/pgconn
|
|
github.com/jackc/pgx/v5/pgconn/ctxwatch
|
|
github.com/jackc/pgx/v5/pgconn/internal/bgreader
|
|
github.com/jackc/pgx/v5/pgproto3
|
|
github.com/jackc/pgx/v5/pgtype
|
|
github.com/jackc/pgx/v5/pgxpool
|
|
# github.com/jackc/puddle/v2 v2.2.2
|
|
## explicit; go 1.19
|
|
github.com/jackc/puddle/v2
|
|
github.com/jackc/puddle/v2/internal/genstack
|
|
# github.com/json-iterator/go v1.1.12
|
|
## explicit; go 1.12
|
|
github.com/json-iterator/go
|
|
# github.com/klauspost/cpuid/v2 v2.2.7
|
|
## explicit; go 1.15
|
|
github.com/klauspost/cpuid/v2
|
|
# github.com/kr/text v0.2.0
|
|
## explicit
|
|
# github.com/leodido/go-urn v1.4.0
|
|
## explicit; go 1.18
|
|
github.com/leodido/go-urn
|
|
github.com/leodido/go-urn/scim/schema
|
|
# github.com/mattn/go-isatty v0.0.20
|
|
## explicit; go 1.15
|
|
github.com/mattn/go-isatty
|
|
# github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
|
|
## explicit
|
|
github.com/modern-go/concurrent
|
|
# github.com/modern-go/reflect2 v1.0.2
|
|
## explicit; go 1.12
|
|
github.com/modern-go/reflect2
|
|
# github.com/pelletier/go-toml/v2 v2.2.2
|
|
## explicit; go 1.16
|
|
github.com/pelletier/go-toml/v2
|
|
github.com/pelletier/go-toml/v2/internal/characters
|
|
github.com/pelletier/go-toml/v2/internal/danger
|
|
github.com/pelletier/go-toml/v2/internal/tracker
|
|
github.com/pelletier/go-toml/v2/unstable
|
|
# github.com/rogpeppe/go-internal v1.15.0
|
|
## explicit; go 1.25
|
|
# github.com/twitchyliquid64/golang-asm v0.15.1
|
|
## explicit; go 1.13
|
|
github.com/twitchyliquid64/golang-asm/asm/arch
|
|
github.com/twitchyliquid64/golang-asm/bio
|
|
github.com/twitchyliquid64/golang-asm/dwarf
|
|
github.com/twitchyliquid64/golang-asm/goobj
|
|
github.com/twitchyliquid64/golang-asm/obj
|
|
github.com/twitchyliquid64/golang-asm/obj/arm
|
|
github.com/twitchyliquid64/golang-asm/obj/arm64
|
|
github.com/twitchyliquid64/golang-asm/obj/mips
|
|
github.com/twitchyliquid64/golang-asm/obj/ppc64
|
|
github.com/twitchyliquid64/golang-asm/obj/riscv
|
|
github.com/twitchyliquid64/golang-asm/obj/s390x
|
|
github.com/twitchyliquid64/golang-asm/obj/wasm
|
|
github.com/twitchyliquid64/golang-asm/obj/x86
|
|
github.com/twitchyliquid64/golang-asm/objabi
|
|
github.com/twitchyliquid64/golang-asm/src
|
|
github.com/twitchyliquid64/golang-asm/sys
|
|
github.com/twitchyliquid64/golang-asm/unsafeheader
|
|
# github.com/ugorji/go/codec v1.2.12
|
|
## explicit; go 1.11
|
|
github.com/ugorji/go/codec
|
|
# golang.org/x/arch v0.8.0
|
|
## explicit; go 1.18
|
|
golang.org/x/arch/x86/x86asm
|
|
# golang.org/x/crypto v0.27.0
|
|
## explicit; go 1.20
|
|
golang.org/x/crypto/pbkdf2
|
|
golang.org/x/crypto/sha3
|
|
# golang.org/x/net v0.25.0
|
|
## explicit; go 1.18
|
|
golang.org/x/net/html
|
|
golang.org/x/net/html/atom
|
|
golang.org/x/net/http/httpguts
|
|
golang.org/x/net/http2
|
|
golang.org/x/net/http2/h2c
|
|
golang.org/x/net/http2/hpack
|
|
golang.org/x/net/idna
|
|
# golang.org/x/sync v0.8.0
|
|
## explicit; go 1.18
|
|
golang.org/x/sync/semaphore
|
|
# golang.org/x/sys v0.26.0
|
|
## explicit; go 1.18
|
|
golang.org/x/sys/cpu
|
|
golang.org/x/sys/unix
|
|
# golang.org/x/text v0.18.0
|
|
## explicit; go 1.18
|
|
golang.org/x/text/cases
|
|
golang.org/x/text/internal
|
|
golang.org/x/text/internal/language
|
|
golang.org/x/text/internal/language/compact
|
|
golang.org/x/text/internal/tag
|
|
golang.org/x/text/language
|
|
golang.org/x/text/runes
|
|
golang.org/x/text/secure/bidirule
|
|
golang.org/x/text/secure/precis
|
|
golang.org/x/text/transform
|
|
golang.org/x/text/unicode/bidi
|
|
golang.org/x/text/unicode/norm
|
|
golang.org/x/text/width
|
|
# google.golang.org/protobuf v1.34.1
|
|
## explicit; go 1.17
|
|
google.golang.org/protobuf/encoding/protowire
|
|
google.golang.org/protobuf/internal/detrand
|
|
google.golang.org/protobuf/internal/encoding/messageset
|
|
google.golang.org/protobuf/internal/errors
|
|
google.golang.org/protobuf/internal/flags
|
|
google.golang.org/protobuf/internal/genid
|
|
google.golang.org/protobuf/internal/order
|
|
google.golang.org/protobuf/internal/pragma
|
|
google.golang.org/protobuf/internal/strs
|
|
google.golang.org/protobuf/proto
|
|
google.golang.org/protobuf/reflect/protoreflect
|
|
google.golang.org/protobuf/reflect/protoregistry
|
|
google.golang.org/protobuf/runtime/protoiface
|
|
# gopkg.in/yaml.v3 v3.0.1
|
|
## explicit
|
|
gopkg.in/yaml.v3
|