Heim >Backend-Entwicklung >Golang >So implementieren Sie JD-Zahlungen für Webanwendungen mit Golang
Mit der rasanten Entwicklung des E-Commerce entscheiden sich immer mehr Unternehmen für die Online-Zahlung, um den Transaktionsprozess abzuschließen. Unter ihnen ist JD Pay als einer der bekanntesten Drei-Parteien-Zahlungsdienstleister in China bei Unternehmen und Verbrauchern beliebt. Da Golang eine effiziente und prägnante Programmiersprache ist, denken immer mehr Unternehmen darüber nach, sie für die Entwicklung von Webanwendungen zu verwenden. In diesem Artikel wird erläutert, wie Sie mit Golang die JD-Zahlung für Webanwendungen implementieren.
$ go mod init example.com/myproject
Unter diesen kann example.com/myproject durch den gewünschten Projektnamen und -pfad ersetzt werden. Nach der Ausführung wird eine go.mod-Datei zur Verwaltung von Projektabhängigkeiten generiert.
$ go get github.com/smartwalle/alipay/v3
Dieses Paket ist das mit Golang entwickelte Alibaba Cloud Alipay SDK und kann zur Implementierung von JD.com-Zahlungsfunktionen verwendet werden. Nachdem die Installation abgeschlossen ist, importieren Sie das Paket in das Projekt:
import "github.com/smartwalle/alipay/v3"
alipayClient := alipay.NewClient("商户号", "密钥") // 设置公钥 alipayClient.SetAliPayPublicKey("支付宝公钥") // 设置签名类型 alipayClient.SetSignType(alipay.RSA2)
Darunter können die „Händlernummer“ und der „Schlüssel“ in der JD-Zahlungskonsole abgerufen werden, und der „öffentliche Alipay-Schlüssel“ muss ebenfalls in der Konsole heruntergeladen werden. Darüber hinaus müssen Sie auch den Signaturtyp festlegen. JD Pay unterstützt drei Signaturmethoden: MD5, RSA und RSA2. Es wird empfohlen, die RSA2-Signatur zu verwenden.
func MakePayment(orderNo string, amount float64) (string, error) { var p = alipay.TradePagePay{} p.NotifyURL = "http://xxx.com/notify" p.ReturnURL = "http://xxx.com/return" p.Subject = "订单名称" p.Body = "订单描述" p.OutTradeNo = orderNo p.ProductCode = "FAST_INSTANT_TRADE_PAY" p.TotalAmount = amount url, err := alipayClient.TradePagePay(p) if err != nil { return "", err } return url.String(), nil }
wobei orderNo die Bestellnummer und amount der Bestellbetrag ist. NotifyURL und ReturnURL sind die Benachrichtigungs-URL über das Zahlungsergebnis bzw. die Rückgabe-URL nach Abschluss der Zahlung. Betreff und Text stellen den Bestellnamen und die Bestellbeschreibung dar. OutTradeNo ist die einzige Bestellnummer auf der Händler-Website und muss die Eindeutigkeit jeder Zahlung sicherstellen. ProductCode ist der voreingestellte Produktcode von Alipay.
func VerifyPayment(notification *alipay.TradeNotification) error { var err = alipayClient.VerifySign(notification) if err != nil { return err } if notification.TradeStatus != "TRADE_SUCCESS" { return errors.New("支付失败") } return nil }
Unter anderem wird die VerifySign-Funktion verwendet, um zu überprüfen, ob die Signatur des Zahlungsergebnisses korrekt ist. Wenn ein Fehler zurückgegeben wird, ist das Zahlungsergebnis falsch. Ob die Zahlung erfolgreich war, können Sie anhand des Feldes TradeStatus feststellen.
Fazit:
In diesem Artikel wird erläutert, wie Sie mit Golang die JD-Zahlungsfunktion von Webanwendungen implementieren, einschließlich der Registrierung eines Entwicklerkontos, der Erstellung eines Golang-Projekts, der Installation von Paketen von Drittanbietern, der Konfiguration von Zahlungsparametern, der Implementierung von Zahlungsfunktionen und der Überprüfung von Zahlungsergebnissen . Wenn Sie sich für Golang und Zahlungsfunktionen interessieren, können Sie sich weiterhin darüber informieren.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie JD-Zahlungen für Webanwendungen mit Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!