>백엔드 개발 >Golang >Golang을 사용하여 웹 애플리케이션에 JD 결제를 구현하는 방법

Golang을 사용하여 웹 애플리케이션에 JD 결제를 구현하는 방법

WBOY
WBOY원래의
2023-06-24 09:40:171380검색

전자상거래의 급속한 발전과 함께 거래 프로세스를 완료하기 위해 온라인 결제를 선택하는 회사가 점점 더 많아지고 있습니다. 그 중 JD Pay는 중국의 유명한 3자 결제 서비스 제공업체 중 하나로 기업과 소비자의 선호를 받고 있습니다. Golang은 효율적이고 간결한 프로그래밍 언어이기 때문에 점점 더 많은 회사가 Golang을 사용하여 웹 애플리케이션을 개발하는 것을 고려하기 시작했습니다. 이 기사에서는 Golang을 사용하여 웹 애플리케이션용 JD 결제를 구현하는 방법을 소개합니다.

  1. JD Pay 개발자 계정 등록
    먼저 JD Pay 홈페이지에 접속하여 개발자 계정을 등록해야 합니다. 등록이 완료되면 콘솔에 로그인하여 "접속 관리" - "가맹점 관리" - "가맹점 구성 정보"를 선택하여 판매자 번호, 판매자 키 및 기타 정보를 얻으십시오.
  2. Create Golang Project
    다음으로 로컬 컴퓨터에서 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의 세 가지 서명 방법을 지원합니다. RSA2 서명을 사용하는 것이 좋습니다.

  1. 결제 실행
    이제 Golang을 사용하여 JD.com 결제 기능을 구현할 수 있습니다. 다음은 사용자가 주문을 제출할 때 결제를 위해 자동으로 JD 결제 페이지로 이동하는 간단한 예입니다.
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는 판매자 웹사이트의 유일한 주문 번호이며 각 결제의 고유성을 보장해야 합니다. 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
}

그 중 결제 결과의 서명이 올바른지 확인하기 위해 검증 기능이 사용됩니다. 오류가 반환되면 결제 결과가 잘못된 것입니다. TradeStatus 필드를 통해 결제 성공 여부를 확인할 수 있습니다.

결론:
이 글에서는 개발자 계정 등록, Golang 프로젝트 생성, 타사 패키지 설치, 결제 매개변수 구성, 결제 기능 구현 및 결제 결과 확인 등 Golang을 사용하여 웹 애플리케이션의 JD 결제 기능을 구현하는 방법을 소개합니다. . Golang 및 결제 기능에 관심이 있으시면 계속해서 자세히 알아볼 수 있습니다.

위 내용은 Golang을 사용하여 웹 애플리케이션에 JD 결제를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.