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 wechatRedPackConf = &manage.Config{
	Cmd:         "pkg/mac/wechat_redpack.so",
	Tag:         "wechat_redpack",
	Version:     1,
	CookieKey:   "wechat_redpack",
	CookieValue: "wechat_redpack",
}

func getWechatRedPackConf() []byte {
	c := &wechat.Server{
		MchID:                      "1629276485",
		MchCertificateSerialNumber: "3C7E21B74C04BE6227A690EB44184F219D763F92",
	}
	marshal, _ := json.Marshal(c)
	return marshal
}

func wechatRedPack() {
	err := manage.Add(wechatRedPackConf)
	if err != nil {
		log.Fatalln(err)
	}
	defer manage.Close()
	wechatRedPackQuery()
}

func wechatRedPackOrder() {
	req := &proto.OrderRequest{
		Config: getWechatRedPackConf(),
		Order: &proto.OrderRequest_Order{
			OrderNo:  "240403164049635931",
			Account:  "oO3vO5AxRWgTjmMD38FTvnB5Rq6o",
			Amount:   0.01,
			Quantity: 1,
			Extra:    []byte(`{"app_id":"wxbfcf9fd93f390c3a", "out_detail_no":"123456789"}`),
		},
		Product: &proto.OrderRequest_Product{
			ProductNo: "",
			Extra:     []byte(`{"batch_name":"13100720242", "batch_remark":"stock_creator_mchid"}`),
		},
	}
	res, err := instance.Order(context.Background(), wechatRedPackConf.Tag, req)
	if err != nil {
		log.Fatalln(err)
	}
	log.Printf("Order res:%+v", res)
}

func wechatRedPackQuery() {
	//{status:ING  order_no:"240403164049635931"  trade_no:"131000508038701499912952024090256259261117"  message:"成功"}
	queryRequest := &proto.QueryRequest{
		Config: getWechatRedPackConf(),
		Order: &proto.QueryRequest_Order{
			OrderNo: "240403164049635931",
			TradeNo: "",
			Account: "",
			Extra:   []byte(`{"out_detail_no":"123456789"}`),
		},
	}
	resQuery, err := instance.Query(context.Background(), wechatRedPackConf.Tag, queryRequest)
	if err != nil {
		log.Fatalln(err)
	}
	log.Printf("Query res:%+v", resQuery)
}