電子商取引の急速な発展に伴い、取引プロセスを完了するためにオンライン支払いを選択する企業が増えています。その中でも、JD Pay は、中国の有名な三者決済サービスプロバイダーの 1 つとして、企業や消費者に支持されています。 Golang は効率的で簡潔なプログラミング言語であるため、Web アプリケーションの開発に Golang の使用を検討する企業が増えています。この記事では、Golangを使用してWebアプリケーションにJD決済を実装する方法を紹介します。
$ go mod init example.com/myproject
このうち、example.com/myproject は、必要なプロジェクト名とパスに置き換えることができます。実行後、プロジェクトの依存関係を管理するための go.mod ファイルが生成されます。
$ go get github.com/smartwalle/alipay/v3
このパッケージは、Golang を使用して開発された Alibaba Cloud Alipay SDK であり、JD.com の支払い機能の実装に使用できます。インストールが完了したら、パッケージをプロジェクトにインポートします。
import "github.com/smartwalle/alipay/v3"
alipayClient := alipay.NewClient("商户号", "密钥") // 设置公钥 alipayClient.SetAliPayPublicKey("支付宝公钥") // 设置签名类型 alipayClient.SetSignType(alipay.RSA2)
このうち、「加盟店番号」と「キー」は JD 決済コンソールで取得でき、「Alipay 公開キー」も取得する必要があります。コンソールにダウンロードされました。さらに、署名タイプも設定する必要があります。JD Pay は MD5、RSA、RSA2 の 3 つの署名方法をサポートしています。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 }
ここで、orderNo は注文番号、amount は注文金額です。 NotifyURL、ReturnURLはそれぞれ決済結果通知URL、決済完了後の戻りURLです。件名と本文は注文名と注文の説明を表します。 OutTradeNo は販売者の Web サイト上の唯一の注文番号であり、各支払いの一意性を保証する必要があります。 ProductCode は 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 }
このうち、VerifySign関数は決済結果の署名が正しいかどうかを検証する関数であり、エラーが返された場合は決済結果が正しくないことになります。 TradeStatus フィールドに基づいて、支払いが成功したかどうかを判断できます。
結論:
この記事では、開発者アカウントの登録、Golang プロジェクトの作成、サードパーティ パッケージのインストール、支払いパラメーターの構成、実装など、Golang を使用して Web アプリケーションの JD 支払い機能を実装する方法を紹介します。支払い機能と検証 結果を支払います。 Golang と支払い機能に興味がある場合は、さらに学習を続けることができます。
以上がGolang を使用して Web アプリケーションに JD 決済を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。