All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 6m37s
新增苹果IAP相关接口与逻辑,包括产品列表查询、交易绑定、状态查询和恢复购买功能。移除旧的IAP验证逻辑,重构订阅系统以支持苹果IAP交易记录存储和权益计算。 - 新增/pkg/iap/apple包处理JWS解析和产品映射 - 实现GET /products、POST /attach、POST /restore和GET /status接口 - 新增apple_iap_transactions表存储交易记录 - 更新文档说明配置方式和接口规范 - 移除旧的AppleIAP验证和通知处理逻辑
85 lines
1.8 KiB
Go
85 lines
1.8 KiB
Go
package payment
|
|
|
|
import "github.com/perfect-panel/server/internal/types"
|
|
|
|
type Platform int
|
|
|
|
const (
|
|
Stripe Platform = iota
|
|
AlipayF2F
|
|
EPay
|
|
Balance
|
|
CryptoSaaS
|
|
UNSUPPORTED Platform = -1
|
|
)
|
|
|
|
var platformNames = map[string]Platform{
|
|
"CryptoSaaS": CryptoSaaS,
|
|
"Stripe": Stripe,
|
|
"AlipayF2F": AlipayF2F,
|
|
"EPay": EPay,
|
|
"balance": Balance,
|
|
"unsupported": UNSUPPORTED,
|
|
}
|
|
|
|
func (p Platform) String() string {
|
|
for k, v := range platformNames {
|
|
if v == p {
|
|
return k
|
|
}
|
|
}
|
|
return "unsupported"
|
|
}
|
|
|
|
func ParsePlatform(s string) Platform {
|
|
if p, ok := platformNames[s]; ok {
|
|
return p
|
|
}
|
|
return UNSUPPORTED
|
|
}
|
|
|
|
func GetSupportedPlatforms() []types.PlatformInfo {
|
|
return []types.PlatformInfo{
|
|
{
|
|
Platform: Stripe.String(),
|
|
PlatformUrl: "https://stripe.com",
|
|
PlatformFieldDescription: map[string]string{
|
|
"public_key": "Publishable key",
|
|
"secret_key": "Secret key",
|
|
"webhook_secret": "Webhook secret",
|
|
"payment": "Payment Method, only supported card/alipay/wechat_pay",
|
|
},
|
|
},
|
|
{
|
|
Platform: AlipayF2F.String(),
|
|
PlatformUrl: "https://alipay.com",
|
|
PlatformFieldDescription: map[string]string{
|
|
"app_id": "App ID",
|
|
"private_key": "Private Key",
|
|
"public_key": "Public Key",
|
|
"invoice_name": "Invoice Name",
|
|
"sandbox": "Sandbox Mode",
|
|
},
|
|
},
|
|
{
|
|
Platform: EPay.String(),
|
|
PlatformUrl: "",
|
|
PlatformFieldDescription: map[string]string{
|
|
"pid": "PID",
|
|
"url": "URL",
|
|
"key": "Key",
|
|
"type": "Type",
|
|
},
|
|
},
|
|
{
|
|
Platform: CryptoSaaS.String(),
|
|
PlatformUrl: "https://t.me/CryptoSaaSBot",
|
|
PlatformFieldDescription: map[string]string{
|
|
"endpoint": "API Endpoint",
|
|
"account_id": "Account ID",
|
|
"secret_key": "Secret Key",
|
|
},
|
|
},
|
|
}
|
|
}
|