package main

import (
	"context"
	"encoding/json"
	"gitea.cdlsxd.cn/sdk/plugin/instance"
	"gitea.cdlsxd.cn/sdk/plugin/manage"
	"gitea.cdlsxd.cn/sdk/plugin/proto"
	"log"
	"plugins/utils/wechat"
)

var wechatCpnConf = &manage.Config{
	Cmd:         "pkg/mac/wechat_cpn.so",
	Tag:         "alipay_redpack",
	Version:     1,
	CookieKey:   "wechat_cpn",
	CookieValue: "wechat_cpn",
}

func getWechatCpnConf() []byte {
	c := &wechat.Server{
		MchID:                      "1605446142", // 证书所属商户
		MchCertificateSerialNumber: "4D081089DEB385316CBDCB55C070287E4920AC76",
	}
	marshal, _ := json.Marshal(c)
	return marshal
}

func wechatOrderCpn() {
	err := manage.Add(wechatCpnConf)
	if err != nil {
		log.Fatalln(err)
	}
	defer manage.Close()
	request := &proto.OrderRequest{
		Config: getWechatCpnConf(),
		Order: &proto.OrderRequest_Order{
			OrderNo: "202411221528258970010009",
			Account: "oknbq5tQyff_vCjjRjCJBElhF1og",
			Extra:   []byte(`{"app_id":"wx83fd6da8093f55b7","stock_creator_mchid":"1679625521"}`),
		},
		Product: &proto.OrderRequest_Product{
			ProductNo: "19519911",
			Extra:     []byte(`{}`),
		},
	}
	res, err := instance.Order(context.Background(), alpayRedConf.Tag, request)
	if err != nil {
		log.Fatalln(err)
	}
	log.Printf("Order res:%+v", res)
}

func wechatQueryCpn() {
	err := manage.Add(wechatCpnConf)
	if err != nil {
		log.Fatalln(err)
	}
	defer manage.Close()
	queryRequest := &proto.QueryRequest{
		Config: getWechatCpnConf(),
		Order: &proto.QueryRequest_Order{
			OrderNo: "",
			TradeNo: "69445765514",
			Account: "oO3vO5AxRWgTjmMD38FTvnB5Rq6o",
			Extra:   []byte(`{"app_id":"wx9ed74283ad25bca1"}`),
		},
	}
	resQuery, err := instance.Query(context.Background(), alpayRedConf.Tag, queryRequest)
	if err != nil {
		log.Fatalln(err)
	}
	log.Printf("Query res:%+v", resQuery)
}