149 lines
4.9 KiB
Go
149 lines
4.9 KiB
Go
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 marketingFJxw() *marketing2.Marketing {
|
||
|
||
dir, err := os.Getwd()
|
||
if err != nil {
|
||
panic(err)
|
||
}
|
||
|
||
parentDir := filepath.Dir(dir)
|
||
|
||
//openssl x509 -in xxx.pem -noout -serial
|
||
|
||
mchId := "1652465541"
|
||
wechatPayPublicKeyId := " PUB_KEY_ID_0116524655412025070900181741001803"
|
||
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 marketingFJLF() *marketing2.Marketing {
|
||
|
||
dir, err := os.Getwd()
|
||
if err != nil {
|
||
panic(err)
|
||
}
|
||
|
||
parentDir := filepath.Dir(dir)
|
||
|
||
mchId := "1100040695"
|
||
wechatPayPublicKeyId := " PUB_KEY_ID_0111000406952026032500382251001000"
|
||
certificateSerialNo := "46712853869DB0EDAA9B4DF97DADEECD4CCDC85B"
|
||
|
||
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("11941580000000012"),
|
||
StockId: utils.String("20964154"),
|
||
OutRequestNo: utils.String("196605139814767820814"),
|
||
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, openId, couponId string) (response *marketing2.SendResp, err error) {
|
||
return marketingFJxw().Query(appId, openId, couponId)
|
||
//return marketingFJLF().Query(appId, openId, couponId)
|
||
}
|