golang 微信商家转账到用户零钱

    var (
        mchID                      string = "123456"                                // 商户号
        mchCertificateSerialNumber string = "123456"  // 商户证书序列号
        mchAPIv3Key                string = "123456"          // 商户APIv3密钥
    )

    // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
    mchPrivateKey, err := utils.LoadPrivateKeyWithPath("C:/Users/Administrator/Desktop/小游戏微信支付/1516803781_20220721_cert/apiclient_key.pem")
    if err != nil {
        log.Fatal("error:",err.Error())
    }

    ctx := context.Background()
    opts := []core.ClientOption{
        option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
    }
    client, err := core.NewClient(ctx, opts...)
    if err != nil {
        log.Printf("new wechat pay client err:%s", err)
    }

    svc := transferbatch.TransferBatchApiService{Client: client}
    resp, result, err := svc.InitiateBatchTransfer(ctx,
        transferbatch.InitiateBatchTransferRequest{
            Appid:       core.String("ccc"),//商户appid
            BatchName:   core.String("3699游戏"),
            BatchRemark: core.String("3699小游戏"),
            OutBatchNo:  core.String("plfk2020042013"),
            TotalAmount: core.Int64(30),
            TotalNum:    core.Int64(1),
            TransferDetailList: []transferbatch.TransferDetailInput{transferbatch.TransferDetailInput{
                TransferAmount: core.Int64(30),
                OutDetailNo:    core.String("x23zy545Bd5435"),
                TransferRemark: core.String("游戏提现"),
                Openid:         core.String("o-2233"),//用户openid
            }},
        },
    )

    if err != nil {
        // 处理错误
        log.Printf("call InitiateBatchTransfer err:%s", err)
    } else {
        // 处理返回结果
        log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
    }

 

posted @ 2022-08-12 15:30  杨鑫Zz  阅读(495)  评论(0编辑  收藏  举报