Avec le développement rapide du commerce électronique, de plus en plus d'entreprises commencent à choisir le paiement en ligne pour finaliser le processus de transaction. Parmi eux, JD Pay, en tant que l'un des fournisseurs de services de paiement tripartites bien connus en Chine, est favorisé par les entreprises et les consommateurs. Golang étant un langage de programmation efficace et concis, de plus en plus d’entreprises commencent à envisager de l’utiliser pour développer des applications Web. Cet article explique comment utiliser Golang pour implémenter le paiement JD pour les applications Web.
$ go mod init example.com/myproject
Parmi eux, example.com/myproject peut être remplacé par le nom du projet et le chemin souhaité. Après l'exécution, un fichier go.mod sera généré pour gérer les dépendances du projet.
$ go get github.com/smartwalle/alipay/v3
Ce package est le SDK Alibaba Cloud Alipay développé à l'aide de Golang et peut être utilisé pour implémenter les fonctions de paiement JD.com. Une fois l'installation terminée, importez le package dans le projet :
import "github.com/smartwalle/alipay/v3"
alipayClient := alipay.NewClient("商户号", "密钥") // 设置公钥 alipayClient.SetAliPayPublicKey("支付宝公钥") // 设置签名类型 alipayClient.SetSignType(alipay.RSA2)
Parmi eux, le « numéro de commerçant » et la « clé » peuvent être obtenus dans la console de paiement JD, et la « clé publique Alipay » doit également être téléchargée dans la console. De plus, vous devez également définir le type de signature. JD Pay prend en charge trois méthodes de signature : MD5, RSA et RSA2. Il est recommandé d'utiliser la signature RSA2.
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 }
où orderNo est le numéro de commande et montant est le montant de la commande. NotifyURL et ReturnURL sont respectivement l'URL de notification du résultat du paiement et l'URL de retour une fois le paiement effectué. Le sujet et le corps représentent le nom et la description de la commande. OutTradeNo est le seul numéro de commande sur le site Internet du commerçant et doit garantir l'unicité de chaque paiement. ProductCode est le code produit prédéfini d'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 }
Parmi eux, la fonction VerifySign est utilisée pour vérifier si la signature du résultat du paiement est correcte. Si une erreur est renvoyée, le résultat du paiement est incorrect. Vous pouvez déterminer si le paiement a réussi en fonction du champ TradeStatus.
Conclusion :
Cet article explique comment utiliser Golang pour implémenter la fonction de paiement JD des applications Web, notamment l'enregistrement d'un compte de développeur, la création d'un projet Golang, l'installation de packages tiers, la configuration des paramètres de paiement, la mise en œuvre des fonctions de paiement et la vérification des résultats de paiement. . Si vous êtes intéressé par Golang et les fonctions de paiement, vous pouvez continuer à en savoir plus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!