voucher/test/bank_multi_activity.go

95 lines
2.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package test
import (
"errors"
"fmt"
"os"
"path/filepath"
marketing2 "voucher/internal/pkg/wechat/srv/marketing"
"voucher/internal/pkg/wechat/utils"
)
func marketing() *marketing2.Marketing {
dir, err := os.Getwd()
if err != nil {
panic(err)
}
parentDir := filepath.Dir(dir)
//openssl x509 -in xxx.pem -noout -serial
mchId := "1710953361"
wechatPayPublicKeyId := "PUB_KEY_ID_0117109533612025031800326400002563"
certificateSerialNo := "6006B8208815DB5EAC5BF2E783CB9D34082C3772"
//mchId := "1652465541"
//wechatPayPublicKeyId := ""
//certificateSerialNo := "1E3F2CE013203BA9C3DEFC5782FCD3329C3DAC1C"
filePath := fmt.Sprintf("%s/cert/wechat/%s", parentDir, mchId)
c, err := utils.CreateMchConfig(
mchId, // 商户号,是由微信支付系统生成并分配给每个商户的唯一标识符,商户号获取方式参考 https://pay.weixin.qq.com/doc/v3/merchant/4013070756
certificateSerialNo, // 商户API证书序列号如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013053053
fmt.Sprintf("%s/%s", filePath, "wechat_private_key.pem"), // 商户API证书私钥文件路径本地文件路径
wechatPayPublicKeyId, // 微信支付公钥ID如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013038816
fmt.Sprintf("%s/%s", filePath, "pub_key.pem"), // 微信支付公钥文件路径,本地文件路径
)
if err != nil {
panic(err)
}
return &marketing2.Marketing{MchConfig: c}
}
func MarketingSend() {
openId := "oSNb4ftgnWC22Z0cWTjsQebdr2Yk"
appId := "wx619991cc795028f5"
request := &marketing2.SendReq{
ActivityId: utils.String("11941580000000004"),
StockId: utils.String("20811630"),
OutRequestNo: utils.String("20250801000000001"),
Appid: utils.String(appId),
StockCreatorMchId: utils.String("1652465541"),
}
response, err := marketing().Send(openId, request)
if err != nil {
var e *utils.ApiException
if errors.As(err, &e) {
apiErr, err3 := marketing2.BuildErr(e.Body())
if err3 != nil {
fmt.Printf("请求失败: %+v\n", err3)
} else {
fmt.Printf("请求失败: %s-%s\n", apiErr.Code, apiErr.Message)
}
}
return
}
fmt.Printf("请求成功: %+v\n", response)
fmt.Printf("请求成功: %s\n", *response.CouponId)
}
func MarketingQuery() {
appId := "wx619991cc795028f5"
openId := "oSNb4ftgnWC22Z0cWTjsQebdr2Yk"
couponId := "113831004454"
response, err := marketing().Query(appId, openId, couponId)
if err != nil {
fmt.Print(err)
return
}
fmt.Printf("请求成功: %+v\n", response)
}