Golang を使用して Web アプリケーションに JD 決済を実装する方法

WBOY
リリース: 2023-06-24 09:40:17
オリジナル
1347 人が閲覧しました

電子商取引の急速な発展に伴い、取引プロセスを完了するためにオンライン支払いを選択する企業が増えています。その中でも、JD Pay は、中国の有名な三者決済サービスプロバイダーの 1 つとして、企業や消費者に支持されています。 Golang は効率的で簡潔なプログラミング言語であるため、Web アプリケーションの開発に Golang の使用を検討する企業が増えています。この記事では、Golangを使用してWebアプリケーションにJD決済を実装する方法を紹介します。

  1. Jingdong Payment 開発者アカウントの登録
    まず、Jingdong Payment Web サイトにアクセスして開発者アカウントを登録する必要があります。登録完了後、コンソールにログインし、「アクセス管理」-「加盟店管理」-「加盟店設定情報」を選択し、加盟店番号、加盟店キーなどの情報を取得してください。
  2. Golang プロジェクトの作成
    次に、ローカル コンピューター上に Golang プロジェクトを作成します。Visual Studio Code などの統合開発環境 (IDE) を使用できます。ターミナルを開き、次のコマンドを使用して新しい Golang アプリケーションを作成します。
$ go mod init example.com/myproject
ログイン後にコピー

このうち、example.com/myproject は、必要なプロジェクト名とパスに置き換えることができます。実行後、プロジェクトの依存関係を管理するための go.mod ファイルが生成されます。

  1. Golang サードパーティ パッケージのインストール
    JD 決済機能を実装するには、必要な Golang サードパーティ パッケージをインストールする必要があります。ターミナルで次のコマンドを使用します。
$ go get github.com/smartwalle/alipay/v3
ログイン後にコピー

このパッケージは、Golang を使用して開発された Alibaba Cloud Alipay SDK であり、JD.com の支払い機能の実装に使用できます。インストールが完了したら、パッケージをプロジェクトにインポートします。

import "github.com/smartwalle/alipay/v3"
ログイン後にコピー
  1. JD 支払いパラメータの設定
    Golang で JD 支払い機能を実装するには、販売者番号などの必要なパラメータを設定する必要があります。マーチャントキー、Alipay公開キーなど。次の内容をコードに追加します。
alipayClient := alipay.NewClient("商户号", "密钥")
// 设置公钥
alipayClient.SetAliPayPublicKey("支付宝公钥")
// 设置签名类型
alipayClient.SetSignType(alipay.RSA2)
ログイン後にコピー

このうち、「加盟店番号」と「キー」は JD 決済コンソールで取得でき、「Alipay 公開キー」も取得する必要があります。コンソールにダウンロードされました。さらに、署名タイプも設定する必要があります。JD Pay は MD5、RSA、RSA2 の 3 つの署名方法をサポートしています。RSA2 署名を使用することをお勧めします。

  1. 支払いの実行
    Golang を使用して JD.com の支払い機能を実装できるようになりました。以下は、ユーザーが注文を送信したときに、支払いのために JD.com 支払いページに自動的にジャンプする簡単な例です。
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 のプリセット商品コードです。

  1. 支払い結果の確認
    支払い完了後、支払い結果が正しいかどうかを確認する必要があります。 JD 決済サーバーは決済結果通知を NotifyURL に送信し、関連するロジックをコードに記述して処理できます。
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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!