Golang은 결제 기능을 구현합니다.

WBOY
풀어 주다: 2023-05-13 10:11:07
원래의
1152명이 탐색했습니다.

전자상거래 시대가 도래하면서 많은 웹사이트와 앱에서 결제 기능이 필수 기능이 되었습니다. 그 중 효율적인 프로그래밍 언어인 golang은 많은 개발자들에게 선호되어 왔습니다. 이 글에서는 golang을 사용하여 결제 기능을 구현하는 방법을 소개합니다.

  1. 결제 계정 등록

먼저 결제 계정을 등록하고 해당 API 키를 받아야 합니다. 일반적으로 결제 인터페이스 제공업체에는 자세한 문서가 있으며 문서를 읽으면 API 키를 얻는 방법을 배울 수 있습니다.

  1. golang 결제 SDK 설치

다음으로 golang 결제 SDK를 설치해야 합니다. 현재 시장에는 alipay, wechatpay 등 선택할 수 있는 많은 golang 결제 SDK가 있습니다. 여기에서는 설명을 위해 Alipay를 예로 들어보겠습니다. 다음 명령을 사용하여 alipay SDK를 설치할 수 있습니다.

go get github.com/smartwalle/alipay/v3
로그인 후 복사

설치가 완료된 후 alipay SDK를 사용하여 개발할 수 있습니다.

  1. 결제 인터페이스 만들기

다음으로 결제 인터페이스를 만들어야 합니다. 결제 인터페이스에는 일반적으로 판매자 주문 번호, 결제 금액, 제품 이름, 비동기 알림 URL, 동기 점프 URL 등의 매개변수가 필요합니다.

다음은 결제 인터페이스의 샘플 코드입니다.

package main

import (
    "fmt"
    "github.com/smartwalle/alipay/v3"
    "log"
)

func main() {
    aClient, err := alipay.New("appID", "privateKey", false)
    if err != nil {
        log.Fatalf("new alipay client error:%v", err)
    }

    var p = alipay.TradePagePay{}
    p.Subject = "test"
    p.OutTradeNo = "123456"
    p.TotalAmount = "0.01"
    p.ProductCode = "FAST_INSTANT_TRADE_PAY"
    var url, err = aClient.TradePagePay(p)
    if err != nil {
        log.Fatalf("trade page pay error:%v", err)
    }

    fmt.Println(url)
}
로그인 후 복사

위 코드에서는 alipay의 SDK를 사용하여 새로운 결제 클라이언트를 생성하고 결제 매개변수를 설정했습니다. 그 중 "appID"는 1단계에서 결제계좌를 등록한 후 얻은 것이고, "privateKey"는 API Key입니다.

  1. 결제 알림 처리

결제 알림은 결제 인터페이스가 당사 서버에 다시 전화하여 결제 결과를 알려주는 중요한 수단입니다. 서버에서 결제 알림을 수신하기 위한 인터페이스를 구현해야 합니다. 인터페이스는 다음 코드를 사용하여 구현할 수 있습니다.

package main

import (
    "fmt"
    "github.com/smartwalle/alipay/v3"
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/notify_url", func(writer http.ResponseWriter, request *http.Request) {
        bytes, err := ioutil.ReadAll(request.Body)
        if err != nil {
            log.Fatalf("read request body error:%v", err)
        }

        aClient, err := alipay.New("appID", "privateKey", false)
        if err != nil {
            log.Fatalf("new alipay client error:%v", err)
        }

        var result alipay.TradeNotifyResponse
        err = aClient.TradeNotify(bytes, &result)
        if err != nil {
            log.Fatalf("alipay trade notify error:%v", err)
        }

        fmt.Println(result)
    })

    http.ListenAndServe(":8080", nil)
}
로그인 후 복사

위 코드에서 "appID"와 "privateKey"를 다음과 같이 바꿔야 합니다. 실제 API 키.

  1. 결제 결과 처리

마지막으로 결제가 완료된 후 결제 결과를 처리해야 합니다. 구체적으로는 결제 주문을 조회하여 결제 결과를 얻어야 합니다. 다음은 결제 주문 조회를 위한 샘플 코드입니다.

package main

import (
    "fmt"
    "github.com/smartwalle/alipay/v3"
    "log"
)

func main() {
    aClient, err := alipay.New("appID", "privateKey", false)
    if err != nil {
        log.Fatalf("new alipay client error:%v", err)
    }

    var p = alipay.TradeQuery{}
    p.OutTradeNo = "123456"
    p.QueryOptions = []string{"TRADE_SETTLE_INFO"}
    var result, err = aClient.TradeQuery(p)
    if err != nil {
        log.Fatalf("alipay trade query error:%v", err)
    }

    fmt.Println(result)
}
로그인 후 복사

위는 golang을 사용하여 결제 기능을 구현하는 전체 과정입니다. 일반적으로 golang은 결제 기능을 쉽게 구현할 수 있는 좋은 지원과 API를 제공합니다.

위 내용은 Golang은 결제 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!