mirror of
https://github.com/labring/sealos.git
synced 2026-10-30 18:09:56 +08:00
@@ -48,6 +48,7 @@ type PaymentSpec struct {
|
||||
// Amount is the amount of recharge
|
||||
Amount int64 `json:"amount,omitempty"`
|
||||
// e.g. wechat, alipay, creditcard, etc.
|
||||
//+kubebuilder:default:=wechat
|
||||
PaymentMethod string `json:"paymentMethod,omitempty"`
|
||||
}
|
||||
|
||||
|
||||
@@ -144,7 +144,7 @@ func (r *AccountReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
|
||||
// get payment handler
|
||||
payHandler, err := pay.NewPayHandler(payment.Spec.PaymentMethod)
|
||||
if err != nil {
|
||||
r.Logger.Error(err, "get payment handler failed: %s", err)
|
||||
r.Logger.Error(err, "get payment handler failed")
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
// get payment details(status, amount)
|
||||
@@ -372,13 +372,13 @@ func (r *AccountReconciler) DeletePayment(ctx context.Context) error {
|
||||
//get payment handler
|
||||
payHandler, err := pay.NewPayHandler(payment.Spec.PaymentMethod)
|
||||
if err != nil {
|
||||
r.Logger.Error(err, "get payment handler failed: %s", err)
|
||||
r.Logger.Error(err, "get payment handler failed")
|
||||
return err
|
||||
}
|
||||
//expire session if it is necessary
|
||||
err = payHandler.ExpireSession(payment.Status.TradeNO)
|
||||
if err != nil {
|
||||
r.Logger.Error(err, "cancel payment failed: %s", err)
|
||||
r.Logger.Error(err, "cancel payment failed")
|
||||
return err
|
||||
}
|
||||
//delete payment if it is exist for more than 5 minutes
|
||||
|
||||
@@ -80,11 +80,11 @@ func (r *PaymentReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
|
||||
// get payment handler
|
||||
payHandler, err := pay.NewPayHandler(p.Spec.PaymentMethod)
|
||||
if err != nil {
|
||||
r.Logger.Error(err, "get payment Interface failed: %s", err)
|
||||
r.Logger.Error(err, "get payment Interface failed")
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
// get tradeNO and codeURL
|
||||
tradeNO, codeURL, err := payHandler.CreatePayment(p.Spec.Amount, p.Spec.UserID)
|
||||
tradeNO, codeURL, err := payHandler.CreatePayment(p.Spec.Amount/10000, p.Spec.UserID)
|
||||
if err != nil {
|
||||
r.Logger.Error(err, "get tradeNO and codeURL failed")
|
||||
return ctrl.Result{Requeue: true, RequeueAfter: time.Second}, err
|
||||
|
||||
@@ -14,10 +14,6 @@
|
||||
|
||||
package pay
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
type Interface interface {
|
||||
CreatePayment(amount int64, user string) (string, string, error)
|
||||
GetPaymentDetails(sessionID string) (string, int64, error)
|
||||
@@ -31,6 +27,8 @@ func NewPayHandler(paymentMethod string) (Interface, error) {
|
||||
case "wechat":
|
||||
return &WechatPayment{}, nil
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported payment method: %s", paymentMethod)
|
||||
//return nil, fmt.Errorf("unsupported payment method: %s", paymentMethod)
|
||||
//TODO Now set it as the default wechat, and modify it a few days later
|
||||
return &WechatPayment{}, nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user