1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- // Copyright 2021 Tencent Inc. All rights reserved.
- package downloader_test
- import (
- "context"
- "crypto/rsa"
- "fmt"
- "github.com/wechatpay-apiv3/wechatpay-go/core"
- "github.com/wechatpay-apiv3/wechatpay-go/core/auth/verifiers"
- "github.com/wechatpay-apiv3/wechatpay-go/core/downloader"
- "github.com/wechatpay-apiv3/wechatpay-go/core/option"
- )
- func ExampleNewCertificateDownloader_saveCert() {
- ctx := context.Background()
- var (
- mchID string
- mchCertificateSerialNumber string
- mchPrivateKey *rsa.PrivateKey
- mchAPIv3Key string
- )
- // 假设以上参数已初始化完成
- d, err := downloader.NewCertificateDownloader(ctx, mchID, mchPrivateKey, mchCertificateSerialNumber, mchAPIv3Key)
- if err != nil {
- fmt.Println(err)
- return
- }
- for serialNumber, certificateContent := range d.ExportAll(ctx) {
- // 将 certificateContent 写入文件 *.pem
- _, _ = serialNumber, certificateContent
- }
- }
- func ExampleNewCertificateDownloaderMgr() {
- ctx := context.Background()
- mgr := downloader.NewCertificateDownloaderMgr(ctx)
- // CertificateDownloaderMgr 初始化完成,尚未注册任何 Downloader,不会进行任何证书下载
- var (
- mchID string
- mchCertificateSerialNumber string
- mchPrivateKey *rsa.PrivateKey
- mchAPIv3Key string
- )
- // 假设以上参数已初始化完成
- // 注册证书下载器
- if err := mgr.RegisterDownloaderWithPrivateKey(
- ctx, mchPrivateKey, mchCertificateSerialNumber, mchID, mchAPIv3Key,
- ); err == nil {
- fmt.Println(err)
- return
- }
- // 可以注册多个商户的证书下载器...
- // 获取证书访问器
- certificateVisitor := mgr.GetCertificateVisitor(mchID)
- // 使用 certificateVisitor 初始化 Validator 进行验签
- option.WithVerifier(verifiers.NewSHA256WithRSAVerifier(certificateVisitor))
- }
- func ExampleNewCertificateDownloaderMgr_useMgr() {
- var certificateDownloaderMgr *downloader.CertificateDownloaderMgr
- // certificateDownloaderMgr 已经初始化完成且注册了需要的 Downloader
- var (
- mchID string
- mchCertificateSerialNumber string
- mchPrivateKey *rsa.PrivateKey
- )
- ctx := context.Background()
- client, err := core.NewClient(
- ctx,
- option.WithWechatPayAutoAuthCipherUsingDownloaderMgr(
- mchID, mchCertificateSerialNumber, mchPrivateKey, certificateDownloaderMgr,
- ),
- )
- if err != nil {
- fmt.Println(err)
- return
- }
- // 使用下载管理器初始化 Client 成功
- _ = client
- }
|