mirror of
https://github.com/halejohn/Cloudreve.git
synced 2026-01-26 09:34:57 +08:00
Feat: payjs payment
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"github.com/HFO4/cloudreve/pkg/util"
|
||||
"github.com/HFO4/cloudreve/service/vas"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/qingwg/payjs/notify"
|
||||
"github.com/smartwalle/alipay/v3"
|
||||
)
|
||||
|
||||
@@ -100,3 +101,33 @@ func AlipayCallback(c *gin.Context) {
|
||||
// 确认收到通知消息
|
||||
alipay.AckNotification(c.Writer)
|
||||
}
|
||||
|
||||
// PayJSCallback PayJS回调
|
||||
func PayJSCallback(c *gin.Context) {
|
||||
pay, err := payment.NewPaymentInstance("payjs")
|
||||
if err != nil {
|
||||
util.Log().Debug("[PayJS回调] 无法创建支付宝客户端, %s", err)
|
||||
c.Status(400)
|
||||
return
|
||||
}
|
||||
|
||||
payNotify := pay.(*payment.PayJSClient).Client.GetNotify(c.Request, c.Writer)
|
||||
|
||||
//设置接收消息的处理方法
|
||||
payNotify.SetMessageHandler(func(msg notify.Message) {
|
||||
if err := payment.OrderPaid(msg.OutTradeNo); err != nil {
|
||||
util.Log().Debug("[PayJS回调] 支付处理失败, %s", err)
|
||||
}
|
||||
})
|
||||
|
||||
//处理消息接收以及回复
|
||||
err = payNotify.Serve()
|
||||
if err != nil {
|
||||
util.Log().Debug("[PayJS回调] 回调处理失败, %s", err)
|
||||
return
|
||||
}
|
||||
|
||||
//发送回复的消息
|
||||
payNotify.SendResponseMsg()
|
||||
|
||||
}
|
||||
|
||||
@@ -127,6 +127,11 @@ func InitMasterRouter() *gin.Engine {
|
||||
// 回调接口
|
||||
callback := v3.Group("callback")
|
||||
{
|
||||
// PAYJS回调
|
||||
callback.POST(
|
||||
"payjs",
|
||||
controllers.PayJSCallback,
|
||||
)
|
||||
// 支付宝回调
|
||||
callback.POST(
|
||||
"alipay",
|
||||
|
||||
Reference in New Issue
Block a user