fix: payment amount (#3621)

* fix: Log error

* fix: defauly paymethod
This commit is contained in:
xy
2023-08-02 16:04:33 +08:00
committed by GitHub
parent 35a76b4ea9
commit e2fde2e5da
4 changed files with 9 additions and 10 deletions
@@ -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
+3 -5
View File
@@ -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
}
}