Rumah pembangunan bahagian belakang Golang Cara guna bayaran golang

Cara guna bayaran golang

May 10, 2023 am 10:54 AM

Bahasa Go ialah bahasa pengaturcaraan yang disusun, serentak dan pengumpulan sampah Ia mempunyai kelebihan kesederhanaan, kelajuan dan keselamatan Oleh itu, ia telah digemari oleh semakin ramai pembangun dan perusahaan dalam beberapa tahun kebelakangan ini. Ia adalah keperluan yang sangat biasa untuk melaksanakan fungsi pembayaran dalam aplikasi bahasa Go, dan artikel ini akan memperkenalkan secara ringkas cara menggunakan bahasa Go untuk melaksanakan fungsi pembayaran.

1. Pilih saluran pembayaran

Sebelum melaksanakan fungsi pembayaran, langkah pertama yang perlu anda lakukan ialah memilih saluran pembayaran yang boleh dipercayai. Pada masa ini, pasaran menyediakan banyak saluran pembayaran, seperti Alipay, WeChat Pay, UnionPay Pay, dll. Artikel ini akan mengambil Alipay sebagai contoh untuk memperkenalkan secara ringkas cara menggunakan bahasa Go untuk melaksanakan fungsi pembayaran.

2. Buka akaun pembangun Alipay

Sebelum menggunakan Alipay untuk membayar, anda perlu membuka akaun pembangun di tapak web rasmi Alipay dan memilih kaedah akses yang sepadan seperti yang diperlukan. Saya tidak akan pergi ke butiran di sini, pembaca boleh merujuk kepada dokumen pembangunan Alipay sendiri.

3. Pasang Alipay SDK

Alipay SDK ialah kit alat yang disediakan secara rasmi yang boleh membantu kami melaksanakan fungsi pembayaran Alipay. Dalam bahasa Go, anda boleh menggunakan arahan berikut untuk memasang pakej pembangunan:

go get -u github.com/smartwalle/alipay/v3
Salin selepas log masuk

Antaranya, "smartwalle/alipay/v3" ialah Alipay SDK bahasa Go sumber terbuka, yang menyediakan semua fungsi yang diperlukan untuk Alipay bayaran.

4. Cipta pelanggan Alipay

Sebelum membuat pembayaran Alipay, anda perlu membuat pelanggan Alipay adalah seperti berikut:

import (
    "github.com/smartwalle/alipay/v3"
    "github.com/smartwalle/alipay/v3/constant"
)

func NewAlipayClient(appID, privateKey, publicKey string) *alipay.Client {
    client := alipay.New(appID, privateKey, false)
    client.SetSignType(constant.RSA2)
    client.SetPublicKey(publicKey)
    return client
}
Salin selepas log masuk

Antaranya, appID, privateKey dan. publicKey Diperolehi daripada Alipay Developer Backend.

5. Mulakan pembayaran

Selepas membuat pelanggan Alipay, anda boleh memulakan permintaan pembayaran. Mengambil penciptaan kod QR pembayaran Alipay sebagai contoh, kod sampel adalah seperti berikut:

import (
    "github.com/smartwalle/alipay/v3"
    "github.com/smartwalle/alipay/v3/constant"
    "github.com/smartwalle/alipay/v3/requests"
    "github.com/smartwalle/alipay/v3/sign"
)

func BuildAlipayQROrder(client *alipay.Client, subject, outTradeNo, totalAmount, notifyURL string) (string, error) {
    p := requests.TradePrecreate{
        Subject:     subject,
        OutTradeNo:  outTradeNo,
        TotalAmount: totalAmount,
        NotifyURL:   notifyURL,
    }

    signType := client.GetSignType()
    if signType == constant.RSA || signType == constant.RSA2 {
        b, err := sign.AliPayURLValues(p)
        if err != nil {
            return "", err
        }
        p.Sign = sign.SignWithPKCS1v15(string(b), client.PrivateKey, signType)
    }

    resp, err := client.TradePrecreate(p)
    if err != nil {
        return "", err
    }

    if resp.Content.Code == "10000" {
        return resp.Content.QRCode, nil
    } else {
        return "", fmt.Errorf("[%s] %s", resp.Content.Code, resp.Content.Msg)
    }
}
Salin selepas log masuk

Di sini antara muka TradePrecreate dirangkumkan ke dalam kaedah BuildAlipayQROrder. Antaranya, subjek ialah nama produk, outTradeNo ialah nombor pesanan pedagang, totalAmount ialah jumlah pesanan, notifyURL ialah alamat pemberitahuan hasil pembayaran, dan QRCode ialah kod QR pembayaran imbasan Alipay yang dihasilkan.

6. Memproses keputusan pembayaran

Selepas pengguna menyelesaikan pembayaran, Alipay akan memberitahu pedagang hasil pembayaran secara tidak segerak, yang perlu diproses tepat pada masanya semasa pembangunan. Contoh kod adalah seperti berikut:

import (
    "github.com/smartwalle/alipay/v3"
    "github.com/smartwalle/alipay/v3/constant"
    "github.com/smartwalle/alipay/v3/requests"
)

// 处理支付宝异步通知
func HandleAlipayNotify(client *alipay.Client, params alipay.NotifyParams) error {
    b, err := json.Marshal(params)
    if err != nil {
        return err
    }

    if err := client.CheckNotifySign(string(b)); err != nil {
        return err
    }

    switch params.TradeStatus {
    case "TRADE_SUCCESS":
        tradeQuery, err := client.TradeQuery(requests.TradeQuery{
            OutTradeNo: params.OutTradeNo,
            TradeNo:    params.TradeNo,
        })
        if err != nil {
            return err
        }

        if tradeQuery.Content.TradeStatus == "TRADE_SUCCESS" {
            // 订单处理成功,执行自己的业务逻辑
        }
    case "TRADE_CLOSED":
        // 订单已关闭,执行自己的业务逻辑
    default:
        return fmt.Errorf("unsupported trade status: %s", params.TradeStatus)
    }

    return nil

}
Salin selepas log masuk

Menurut parameter pemberitahuan tak segerak Alipay, anda boleh menanyakan status pembayaran pesanan dengan menghubungi antara muka TradeQuery, dan akhirnya melaksanakan logik perniagaan anda sendiri berdasarkan hasil pembayaran sebenar.

7. Ringkasan

Artikel ini memperkenalkan cara menggunakan bahasa Go untuk melaksanakan fungsi pembayaran Alipay. Pertama, anda perlu membuka akaun pembangun Alipay dan pilih kaedah akses yang sepadan. Kemudian, dengan memasang Alipay SDK, mencipta pelanggan Alipay, memulakan permintaan pembayaran dan memproses hasil pembayaran, fungsi pembayaran Alipay yang mudah akhirnya dapat direalisasikan. Dalam aplikasi sebenar, pelarasan lanjut mungkin diperlukan mengikut keperluan anda sendiri.

Atas ialah kandungan terperinci Cara guna bayaran golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1664
14
Tutorial PHP
1266
29
Tutorial C#
1239
24
Tujuan Golang: Membina sistem yang cekap dan berskala Tujuan Golang: Membina sistem yang cekap dan berskala Apr 09, 2025 pm 05:17 PM

Pergi bahasa berfungsi dengan baik dalam membina sistem yang cekap dan berskala. Kelebihannya termasuk: 1. Prestasi Tinggi: Disusun ke dalam Kod Mesin, Kelajuan Berjalan Cepat; 2. Pengaturcaraan serentak: Memudahkan multitasking melalui goroutine dan saluran; 3. Kesederhanaan: sintaks ringkas, mengurangkan kos pembelajaran dan penyelenggaraan; 4. Cross-Platform: Menyokong kompilasi silang platform, penggunaan mudah.

Golang vs Python: Prestasi dan Skala Golang vs Python: Prestasi dan Skala Apr 19, 2025 am 12:18 AM

Golang lebih baik daripada Python dari segi prestasi dan skalabiliti. 1) Ciri-ciri jenis kompilasi Golang dan model konkurensi yang cekap menjadikannya berfungsi dengan baik dalam senario konvensional yang tinggi. 2) Python, sebagai bahasa yang ditafsirkan, melaksanakan perlahan -lahan, tetapi dapat mengoptimumkan prestasi melalui alat seperti Cython.

Golang dan C: Konvensyen vs kelajuan mentah Golang dan C: Konvensyen vs kelajuan mentah Apr 21, 2025 am 12:16 AM

Golang lebih baik daripada C dalam kesesuaian, manakala C lebih baik daripada Golang dalam kelajuan mentah. 1) Golang mencapai kesesuaian yang cekap melalui goroutine dan saluran, yang sesuai untuk mengendalikan sejumlah besar tugas serentak. 2) C Melalui pengoptimuman pengkompil dan perpustakaan standard, ia menyediakan prestasi tinggi yang dekat dengan perkakasan, sesuai untuk aplikasi yang memerlukan pengoptimuman yang melampau.

Impak Golang: Kelajuan, Kecekapan, dan Kesederhanaan Impak Golang: Kelajuan, Kecekapan, dan Kesederhanaan Apr 14, 2025 am 12:11 AM

Goimpactsdevelopmentpositivielythroughspeed, efficiency, andsimplicity.1) Speed: goCompilesquicklyandrunsefficiently, idealforlargeproject.2) Kecekapan: ITSComprehensivestandardlibraryraryrarexternaldependencies, enhingdevelyficiency.

Golang vs Python: Perbezaan dan Persamaan Utama Golang vs Python: Perbezaan dan Persamaan Utama Apr 17, 2025 am 12:15 AM

Golang dan Python masing -masing mempunyai kelebihan mereka sendiri: Golang sesuai untuk prestasi tinggi dan pengaturcaraan serentak, sementara Python sesuai untuk sains data dan pembangunan web. Golang terkenal dengan model keserasiannya dan prestasi yang cekap, sementara Python terkenal dengan sintaks ringkas dan ekosistem perpustakaan yang kaya.

Golang dan C: Perdagangan dalam prestasi Golang dan C: Perdagangan dalam prestasi Apr 17, 2025 am 12:18 AM

Perbezaan prestasi antara Golang dan C terutamanya ditunjukkan dalam pengurusan ingatan, pengoptimuman kompilasi dan kecekapan runtime. 1) Mekanisme pengumpulan sampah Golang adalah mudah tetapi boleh menjejaskan prestasi, 2) Pengurusan memori manual C dan pengoptimuman pengkompil lebih cekap dalam pengkomputeran rekursif.

Golang vs C: Perbandingan Prestasi dan Kelajuan Golang vs C: Perbandingan Prestasi dan Kelajuan Apr 21, 2025 am 12:13 AM

Golang sesuai untuk pembangunan pesat dan senario serentak, dan C sesuai untuk senario di mana prestasi ekstrem dan kawalan peringkat rendah diperlukan. 1) Golang meningkatkan prestasi melalui pengumpulan sampah dan mekanisme konvensional, dan sesuai untuk pembangunan perkhidmatan web yang tinggi. 2) C mencapai prestasi muktamad melalui pengurusan memori manual dan pengoptimuman pengkompil, dan sesuai untuk pembangunan sistem tertanam.

Perlumbaan Prestasi: Golang vs C Perlumbaan Prestasi: Golang vs C Apr 16, 2025 am 12:07 AM

Golang dan C masing-masing mempunyai kelebihan sendiri dalam pertandingan prestasi: 1) Golang sesuai untuk kesesuaian tinggi dan perkembangan pesat, dan 2) C menyediakan prestasi yang lebih tinggi dan kawalan halus. Pemilihan harus berdasarkan keperluan projek dan tumpukan teknologi pasukan.

See all articles