浏览代码

Merge branch 'yun-master' of k.zhang/duoduo into yun-test

k.zhang 1 年之前
父节点
当前提交
3bf583111f

+ 1 - 1
apis/common/init.code.go

@@ -21,7 +21,7 @@ func Example(length int, max int) []string {
 	//rand.Seed(42)
 
 	digitNumber := []string{
-		"1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
+		"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
 	}
 	// 用make创建map
 

+ 1 - 0
apis/shanghu/base.go

@@ -42,6 +42,7 @@ func InitShangHuRouter(engine *gin.RouterGroup) {
 		v1.POST("/merchant/pay.info/create", CreateMerchantPayInfo)         //创建支付信息
 		v1.POST("/merchant/pay.info/update", UpdateMerchantPayInfo)         //更新支付信息
 		v1.POST("/merchant/pay.info/get", GetMerchantPayInfo)               //获取支付信息
+		v1.POST("/merchant/recharge.url/get", GetRechargeUrl)               //获取充值url
 	}
 
 	v2 := engine.Group("v2")

+ 1 - 1
apis/shanghu/client_card.go

@@ -80,7 +80,7 @@ func GetClientCardQR(c *gin.Context) {
 	}
 	sqlData.ID = inData.MerchantCardId
 
-	val, err := pdd.DuoDuoGet("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx25357518f710b8ce&secret=83c7dca801a6c93fbfac3c91f57a4eb2")
+	val, err := pdd.DuoDuoGet("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx8595c589dd736486&secret=668f87d2bc24199688e53ee8a88434b8")
 	if err != nil {
 		app.Error(c, 500, err, err.Error())
 		return

+ 5 - 5
apis/shanghu/merchant.card.go

@@ -302,10 +302,10 @@ func GetMerchantCanvasCard(c *gin.Context) {
 	}
 	var buy models.BuyKnowList
 
-	buy.Icon = "/images/资源 46.png"
-	buy.Title = "有效期"
-	buy.Text = "至" + tools.TimeToStr(merchantCard.MerchantCardTime)
-	outData.BuyKnowList = append(outData.BuyKnowList, buy)
+	//buy.Icon = "/images/资源 46.png"
+	//buy.Title = "有效期"
+	//buy.Text = "至" + tools.TimeToStr(merchantCard.MerchantCardTime)
+	//outData.BuyKnowList = append(outData.BuyKnowList, buy)
 	buy.Icon = "/images/资源 48.png"
 	buy.Title = "限购数量"
 	buy.Text = "每位用户限购1张"
@@ -345,7 +345,7 @@ func GetMerchantCanvasCard(c *gin.Context) {
 
 	var outQRData models.ClientCardQRReply
 
-	val, err := pdd.DuoDuoGet("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx25357518f710b8ce&secret=83c7dca801a6c93fbfac3c91f57a4eb2")
+	val, err := pdd.DuoDuoGet("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx8595c589dd736486&secret=668f87d2bc24199688e53ee8a88434b8")
 	if err != nil {
 		app.Error(c, 500, err, err.Error())
 		return

+ 51 - 0
apis/shanghu/merchant.go

@@ -8,6 +8,8 @@ import (
 	"time"
 )
 
+const rechargeUrl = "http://lingyang.shisanmiao.com/shanghuka/WechatIMG5489.jpeg"
+
 func CreateMerchant(c *gin.Context) {
 	var inData models.CreateMerchantRequest
 	var sqlData shanghu.Merchant
@@ -45,6 +47,7 @@ func CreateMerchant(c *gin.Context) {
 	sqlData.Iphone = inData.Iphone
 	sqlData.NumberPlate = inData.NumberPlate
 	sqlData.OpenId = inData.OpenId
+	sqlData.RechargeUrl = inData.RechargeUrl
 
 	_, err = sqlData.Create()
 	if err != nil {
@@ -130,6 +133,7 @@ func UpdateMerchant(c *gin.Context) {
 	sqlData.IndustryCategory = inData.IndustryCategory
 	sqlData.Iphone = inData.Iphone
 	sqlData.NumberPlate = inData.NumberPlate
+	sqlData.RechargeUrl = inData.RechargeUrl
 
 	err = sqlData.UpdateMerchant()
 	if err != nil {
@@ -139,3 +143,50 @@ func UpdateMerchant(c *gin.Context) {
 
 	app.OK(c, nil, app.Success)
 }
+
+func GetRechargeUrl(c *gin.Context) {
+	var inData models.GetRechargeRequest
+	var outData models.GetRechargeReply
+	var sqlData shanghu.Merchant
+	var paySql shanghu.ClientPayTrans
+	var card shanghu.MerchantCard
+
+	err := c.ShouldBindJSON(&inData)
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	//查询c端用户最近的交易记录 未查到直接展示默认url
+	paySql.ClientOpenID = inData.OpenId
+	payInfo, err := paySql.GetPayTransByOpenId()
+	if err != nil {
+		outData.RechargeUrl = rechargeUrl
+		app.OK(c, outData, app.Success)
+	}
+
+	//根据 card-id 查询商家id
+	card.ID = payInfo.MerchantCardID
+	cardInfo, err := card.GetMerchantCard()
+	if err != nil {
+		outData.RechargeUrl = rechargeUrl
+		app.OK(c, outData, app.Success)
+	}
+
+	//根据商家id查询配置
+	sqlData.OpenId = cardInfo.MerchantOpenID
+
+	merchant, err := sqlData.GetMerchant()
+	if err != nil {
+		outData.RechargeUrl = rechargeUrl
+		app.OK(c, outData, app.Success)
+	}
+	if merchant.RechargeUrl == "" {
+		outData.RechargeUrl = rechargeUrl
+	} else {
+		outData.RechargeUrl = merchant.RechargeUrl
+	}
+
+	app.OK(c, outData, app.Success)
+
+}

+ 2 - 2
apis/shanghu/merchant.user.go

@@ -50,7 +50,7 @@ func OpenIdSet(c *gin.Context) {
 		sqlData.CreatedAt = time.Now()
 		sqlData.UpdatedAt = time.Now()
 		//校验唯一性
-		for _, v := range common.Example(5, 10) {
+		for _, v := range common.Example(6, 10) {
 			sqlData.Code = v
 			if sqlData.GetCodeNum() <= 0 {
 				break
@@ -106,7 +106,7 @@ func ClientOpenIdSet(c *gin.Context) {
 		sqlData.CreatedAt = time.Now()
 		sqlData.UpdatedAt = time.Now()
 		//校验唯一性
-		for _, v := range common.Example(5, 10) {
+		for _, v := range common.Example(6, 10) {
 			sqlData.Code = v
 			if sqlData.GetCodeNum() <= 0 {
 				break

+ 9 - 1
apis/shanghu/models/merchant.go

@@ -14,13 +14,20 @@ type CreateMerchantRequest struct {
 	NumberPlate        string `json:"number_plate"`         // 门牌号
 	BusinessLicenseUrl string `json:"business_license_url"` // 营业执照 url
 	DoorHeaderUrl      string `json:"door_header_url"`      // 门头照 url
-
+	RechargeUrl        string `json:"recharge_url"`         // 充值url
 }
 
 type GetMerchantRequest struct {
 	OpenId string `json:"open_id"` //openid
 }
 
+type GetRechargeRequest struct {
+	OpenId string `json:"open_id"` //openid
+}
+
+type GetRechargeReply struct {
+	RechargeUrl string `json:"recharge_url"` //recharge_url
+}
 type MerchantListRequest struct {
 	OpenId    string `json:"open_id"`
 	PageSize  int    `json:"page_size"`
@@ -41,6 +48,7 @@ type UpdateMerchantRequest struct {
 	NumberPlate        string `json:"number_plate"`         // 门牌号
 	BusinessLicenseUrl string `json:"business_license_url"` // 营业执照 url
 	DoorHeaderUrl      string `json:"door_header_url"`      // 门头照 url
+	RechargeUrl        string `json:"recharge_url"`         // 充值url
 }
 
 type CancelCardRequest struct {

+ 14 - 1
apis/shanghu/pay.go

@@ -30,6 +30,8 @@ type Cdata struct {
 	Value string `xml:",cdata"`
 }
 
+var GlobalCashOutMap = make(map[string]int)
+
 var (
 	successResp = &wechatCallbackResp{ReturnCode: Cdata{Value: "SUCCESS"}, ReturnMsg: Cdata{Value: "OK"}}
 	failResp    = &wechatCallbackResp{ReturnCode: Cdata{Value: "FAIL"}, ReturnMsg: Cdata{Value: "数据处理异常"}}
@@ -141,6 +143,17 @@ func PayCashOut(c *gin.Context) {
 		app.Error(c, 400, err, err.Error())
 		return
 	}
+
+	_, ok := GlobalCashOutMap[inData.OpenId]
+	if ok {
+		app.OK(c, nil, "正在提现中...")
+		return
+	}
+
+	GlobalCashOutMap[inData.OpenId] = 1
+	defer func() {
+		delete(GlobalCashOutMap, inData.OpenId)
+	}()
 	if inData.Appid == "" { //appid 不能为空
 		app.Error(c, 400, errors.New("Appid不能为空"), "Appid不能为空")
 		return
@@ -248,7 +261,7 @@ func PayCashOut(c *gin.Context) {
 
 	bm.Set("appid", inData.Appid)
 	bm.Set("out_batch_no", partnerTradeNo)
-	bm.Set("batch_name", "现")
+	bm.Set("batch_name", "现")
 	bm.Set("batch_remark", "提现")
 	bm.Set("total_amount", inData.Amount.Sub(cashOut.Fee).Mul(decimal.NewFromInt(100)).IntPart())
 	bm.Set("total_num", 1)

+ 3 - 1
models/shanghu/merchant.go

@@ -20,6 +20,7 @@ type Merchant struct {
 	NumberPlate        string    `gorm:"column:number_plate;type:varchar(50)" json:"number_plate"`                  // 门牌号
 	BusinessLicenseUrl string    `gorm:"column:business_license_url;type:varchar(255)" json:"business_license_url"` // 营业执照 url
 	DoorHeaderUrl      string    `gorm:"column:door_header_url;type:varchar(255)" json:"door_header_url"`           // 门头照 url
+	RechargeUrl        string    `gorm:"column:recharge_url;type:varchar(255)" json:"recharge_url"`                 // 充值 url
 	CreateBy           int64     `gorm:"column:create_by;type:bigint(20)" json:"create_by"`                         // 创建者
 	UpdateBy           int64     `gorm:"column:update_by;type:bigint(20)" json:"update_by"`                         // 更新者
 	CreatedAt          time.Time `gorm:"column:created_at;type:datetime(3)" json:"created_at"`                      // 创建时间
@@ -87,7 +88,8 @@ func (m *Merchant) UpdateMerchant() error {
 			"address":              m.Address,
 			"number_plate":         m.NumberPlate,
 			"business_license_url": m.BusinessLicenseUrl,
-			"door_header_url":      m.DoorHeaderUrl}).Error; err != nil {
+			"door_header_url":      m.DoorHeaderUrl,
+			"recharge_url":         m.RechargeUrl}).Error; err != nil {
 		return err
 	}
 

+ 13 - 0
models/shanghu/pay.go

@@ -63,6 +63,19 @@ func (m *ClientPayTrans) GetPayTransByOpenid() (ClientPayTrans, error) {
 	return doc, nil
 }
 
+func (m *ClientPayTrans) GetPayTransByOpenId() (ClientPayTrans, error) {
+	var doc ClientPayTrans
+
+	table := orm.ShMysql.Table(m.TableName())
+	table = table.Where("client_open_id = ? and status = 2 ", m.ClientOpenID)
+
+	if err := table.Select("*").First(&doc).Error; err != nil {
+		return doc, err
+	}
+
+	return doc, nil
+}
+
 func (m *ClientPayTrans) GetPaySuccessTransByInvitationCode(pageSize int, pageIndex int) ([]ClientPayTrans, int, error) {
 	var doc []ClientPayTrans
 

+ 3 - 0
routers/router.go

@@ -23,6 +23,9 @@ func InitRouter() {
 
 	r.GET("/", func(c *gin.Context) { c.File("./a.html") })
 	r.GET("/root.txt", func(c *gin.Context) { c.File("./root.txt") })
+	r.GET("/verify_b05e137e3fa13af753763f22554343fd.html", func(c *gin.Context) {
+		c.File("./verify_b05e137e3fa13af753763f22554343fd.html")
+	})
 	r2 := r.Group("/")
 	{
 		pdd.InitPddDdkRouter(r2)

+ 25 - 25
tao1024.com.key

@@ -1,27 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----

+ 27 - 0
tao1024.com.key-bak.key

@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAycMwTzBaXOvK17EbAS4lrHxFhLJVwIUyV4l+MYZ+2ejT0F/n
+dtOBxMEKdUwArhvhqnBaANHdymuuYXHz7yLrYVGiAymdh/RqLdiNisqR2RSv60fL
+zVh7OnPKyJGEgOsLKf09hp5sM5CqnQZQukB/mhRDpqXscWSm+yHNLpiDHHROldpb
+7drhzhq5jD+Xr7ICnbs87Q3cLYoCPbp9v1DWModcmsB9dDi9tqxlPbsvMsVqJIRW
+D8AYfmzQUxwtDGMpe9/835wQIZd6AMK2l2OXBCs/CiKz9wzeHxRN8MrNVvmYHBmY
+/7PQO3lyJuDgAJH2jY5oXquEw8W9V7Z18IJbawIDAQABAoIBADchTgx9TluwlEL+
+oj3e0a2BYW+CWTsbSiewKpq2wOejHmmEIxeNcJqGEuj9JPxuIuny/CzYK43ZgZMf
+04Mm3AFCEI5jqydQikjPsNFZS6Pw6qbT/eS0xisxI5pNZNLjJrBJAaxMko0+fNge
+NyXFZPiBjAC3utU7JwNc95dBViYKR2SofEzyy5+c9a3liOJO6ENVJtI/aGSJ0iQd
+Oq9Qp5B46ylAnqxmlqIvWzc3aeCCsO8I8Lpta9FArimnW0n1os960m/5fo1TXvHB
+VxlH6jvlUtUhcB6LfWJw9MUhCuH0T01VOOdU6fdugbzYvpPOSPEHF7PrYxH2cjQy
+tixspYECgYEA76Y2qOkga1uOv5g+76audxBmJbqyJsITcskC3n+3Iu7bzQj8o3aF
+3AUoXRfyHi+xoZaxulZlN5yYd69nlQH046Nyi4EFAWMYz1gvK+CWhCcRub8iBqiR
+Qs9gm6NHGZFfTOO+EaN4TOdbhi60ZHFjdUQduPxAaJ+sSNNjbBmPdIECgYEA14c7
+jklhzMB219pTD1LjyUcFMJgtDX03HuZXW5ftt7ywxt6r/GaCz9dimlATzY8Uw3J7
+5rTxUMse7ZTaGXZUGcjSZnF/QUDbtqEcI6PztvdwTKPL4vc2mGOL7+p9rSrVuXdo
+hvziArZmbVN3XVK90NSsKojSjbyXXoGx9rBJ6esCgYAgkft9y2lfjesBuSRcl8/A
+WNc5K32I7PmNsSoVqU/vjH0NCbqkULhypbTNqjJ6zcqbhoqTI6jP/RVvtsQiKUjq
+I02vDhLrFFfL3lVS5kwum8y57PMn6oMLjHm5zWAdZneIUK+FYC06bnsu6mwT9qEo
+z+AmQwpR7dmRcEFj8LlhgQKBgD+lLqAY6WmGWFHrpeV7i8qPT2gHOB6ooFNen+Nr
+XQaKEQXZEZ6qQuzPZM2+4eos22vP7ei1/CDoqoxsDW/BcppepEseLv79ASTQNLgN
+nVWlgiMPp5CxggzEMLm7XDt7z7tCGLrsCG3WoS6dnD0Rxv3ZH7I7zzmNvIFq+Tuo
+2VrbAoGAB92oGfy+Wt2tH1gPCPT1SQSAAA0QCCWOFJ7sgi/HWctQJIk7cyDOQcKL
+v2hJ0G94Oq3LNDoDuYfzv2NsMy9saPk1AxTdBZA3bZ8E/6h0Iekngabayd1OSVo8
+yQgyFRkPWxdi+mFvUCj7j2Cki8UxpZtRTSEfbjD18kzAv8iB8GI=
+-----END RSA PRIVATE KEY-----

+ 25 - 25
tao1024.com.pem

@@ -1,37 +1,37 @@
 -----BEGIN CERTIFICATE-----
-MIIGADCCBOigAwIBAgIQA3jDmK89l54o2FNvxDAScjANBgkqhkiG9w0BAQsFADBu
+MIIF/jCCBOagAwIBAgIQD4uCXMdJBynxsCCE4ZtrVDANBgkqhkiG9w0BAQsFADBu
 MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
 d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg
-RFYgVExTIENBIC0gRzIwHhcNMjQwMzE4MDAwMDAwWhcNMjQwNjE1MjM1OTU5WjAW
+RFYgVExTIENBIC0gRzIwHhcNMjQwNjEzMDAwMDAwWhcNMjQwOTEwMjM1OTU5WjAW
 MRQwEgYDVQQDEwt0YW8xMDI0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAMnDME8wWlzrytexGwEuJax8RYSyVcCFMleJfjGGftno09Bf53bTgcTB
-CnVMAK4b4apwWgDR3cprrmFx8+8i62FRogMpnYf0ai3YjYrKkdkUr+tHy81Yezpz
-ysiRhIDrCyn9PYaebDOQqp0GULpAf5oUQ6al7HFkpvshzS6Ygxx0TpXaW+3a4c4a
-uYw/l6+yAp27PO0N3C2KAj26fb9Q1jKHXJrAfXQ4vbasZT27LzLFaiSEVg/AGH5s
-0FMcLQxjKXvf/N+cECGXegDCtpdjlwQrPwois/cM3h8UTfDKzVb5mBwZmP+z0Dt5
-cibg4ACR9o2OaF6rhMPFvVe2dfCCW2sCAwEAAaOCAvAwggLsMB8GA1UdIwQYMBaA
-FHjfkZBf7t6s9sV169VMVVPvJEq2MB0GA1UdDgQWBBT6/7fAoV087EXt+OTqgkYF
-CzxD8zAnBgNVHREEIDAeggt0YW8xMDI0LmNvbYIPd3d3LnRhbzEwMjQuY29tMD4G
+AQoCggEBAJAbM76ue7KyWX9Uy5oZbPm7hEkoFjlUG9S4aIpHhOmXtYS/DEJ/dK+Q
+d+QqxX0s7fQAphwFeDL7bJyiY+N+7O8KvXlVgwyAS4K+xaLbQWMGnsoEA/pIXtqr
+XPdkH56IFKlCdFLVMJ16fWy29N+e2ZmoRj7uB7Om/F56dO9BXZNvVZKIJCGA7Sel
+yErKC+s+ecgykNDMg0c/x9/6s2BZgfWRwYB3ok0VAqFssc1W6SzQtjsuJJXV7Hml
+i2S1hFgai+x/Mxsa3/N/1+tmHI+OmITInAXhF5MXI6832UMm1N5fdaMx2X1juKYk
+IGNIaMvE5F49DZVOUypziLenq4bj8uECAwEAAaOCAu4wggLqMB8GA1UdIwQYMBaA
+FHjfkZBf7t6s9sV169VMVVPvJEq2MB0GA1UdDgQWBBRsX9TZxL80Kytk0xKFdXYg
+8tMzMjAnBgNVHREEIDAeggt0YW8xMDI0LmNvbYIPd3d3LnRhbzEwMjQuY29tMD4G
 A1UdIAQ3MDUwMwYGZ4EMAQIBMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuZGln
 aWNlcnQuY29tL0NQUzAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUH
 AwEGCCsGAQUFBwMCMIGABggrBgEFBQcBAQR0MHIwJAYIKwYBBQUHMAGGGGh0dHA6
 Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBKBggrBgEFBQcwAoY+aHR0cDovL2NhY2VydHMu
 ZGlnaWNlcnQuY29tL0VuY3J5cHRpb25FdmVyeXdoZXJlRFZUTFNDQS1HMi5jcnQw
-DAYDVR0TAQH/BAIwADCCAX8GCisGAQQB1nkCBAIEggFvBIIBawFpAHcA7s3QZNXb
-Gs7FXLedtM0TojKHRny87N7DUUhZRnEftZsAAAGOUQwAhQAABAMASDBGAiEA3DSP
-E2qH4VKfRlNGKQDW3owpW2yraOpXC6AAA49Cb7cCIQCjGJStnqYhznkYRJb/pL8U
-pVqaDK5ZA8INDb9ZturCYgB2AEiw42vapkc0D+VqAvqdMOscUgHLVt0sgdm7v6s5
-2IRzAAABjlEMAK4AAAQDAEcwRQIhANCmJpwVv2EBWXloCvVR/y0CHzEyqxgd1sXf
-3P32VlPWAiBIQ6Sa+dYOTv+Pu00HT3/9dpLZc9B7SZ6i25F6lAdT+wB2ANq2v2s/
-tbYin5vCu1xr6HCRcWy7UYSFNL2kPTBI1/urAAABjlEMAFAAAAQDAEcwRQIgG2VJ
-qCTqGiFN5LSPkbU9akoTUdfN2kIv8hZCkhdvMH8CIQC/2lfmbg6OFkplsNz7a4pT
-EXsyD2WZGbSnvZOhPtKc3DANBgkqhkiG9w0BAQsFAAOCAQEAWWEtWDtczVGraOdp
-WmnJISCsAZYoo7mBM6btjvtqBLNjp0BvcZNsxTb7FJKKfNuwWXoeecOcNe50ZVJj
-hUUJHmpVWdpiKCTLj84a6MzxlSkUSFdnLKdlgN/jB+Lxvc9wlccNx/bKeOwoA3XL
-Fym6oHPw3PkcDbyckuvk3KLmOuAOYj5ASRWaVKl2MpOQr4XyOSMESODWGHzDrYg6
-4KCyYSImK4CoI2QwfI3am+R3nQJBwo1FOC6Mae4EpS1uUI+aGnCuHu/LyVET3Owj
-agm2JIMw/KMFu1tIk/A7d1R+VThKTy3Qo3Lga2Tae+lZrniTmMDlswMxfvo3R+63
-u7HFNQ==
+DAYDVR0TAQH/BAIwADCCAX0GCisGAQQB1nkCBAIEggFtBIIBaQFnAHUA7s3QZNXb
+Gs7FXLedtM0TojKHRny87N7DUUhZRnEftZsAAAGQEYGCXwAABAMARjBEAiBGJh1q
+U9ZxaRMrfHzefqmelsoWIPwlA11tQgnDwffiCwIgBX5UbB819Y0ELV6IlmnM4f+H
+6d5edklEu+5ap0nAsu4AdgBIsONr2qZHNA/lagL6nTDrHFIBy1bdLIHZu7+rOdiE
+cwAAAZARgYKOAAAEAwBHMEUCIQDKzQJRAuuD/jlsvnXzI/T+JTPSFZdSdwIUTbP3
+aV2qTgIgYsI5qq2nhWxrzApoNnoOoW0H46jvEKFd3Soqz0D1j7gAdgDatr9rP7W2
+Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAZARgYJ4AAAEAwBHMEUCIGVZlwTG
+V/7pAOSL/MpbGx5rcD0QaRgk5goltXqXOa9qAiEA6GxAeQZIiDDA34veV8srXf3F
+5mk3fEl8g1SzAgRXxr4wDQYJKoZIhvcNAQELBQADggEBACYNP4zoTywXgNtVbLA/
+jpaVXPs5KK/JPxp83fnhDTDCcOapVujzduIeHkXGzYXT0/V+oa/63WF715ex6vSN
+KzAPC2bolcPgHyiQc/bv5NAIEDnO5A2Py+1Q33umjT9D5ti4eb4IAh3+vqVDrbJr
+tHSQIZt/WAUu57CnQ3kmF2q+6qHxcYPn19mVEQmcmfJb+177oS6P9CqMeBV71pmX
+30tOUSlePkNdhAQqm4h7iHQ5pDRxkcmvz+akxaBg7pKJj2uLKy/0XtpIAUc5dhAT
+CWef3XdFYByBKUxjL4m5jplGT3LE0vQNhYh+xebRdIYNKW2T2+KfLd7VGZFd6ZgP
+eCs=
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 MIIEqjCCA5KgAwIBAgIQDeD/te5iy2EQn2CMnO1e0zANBgkqhkiG9w0BAQsFADBh

+ 62 - 0
tao1024.com.pem-bak.pem

@@ -0,0 +1,62 @@
+-----BEGIN CERTIFICATE-----
+MIIGADCCBOigAwIBAgIQA3jDmK89l54o2FNvxDAScjANBgkqhkiG9w0BAQsFADBu
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg
+RFYgVExTIENBIC0gRzIwHhcNMjQwMzE4MDAwMDAwWhcNMjQwNjE1MjM1OTU5WjAW
+MRQwEgYDVQQDEwt0YW8xMDI0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBAMnDME8wWlzrytexGwEuJax8RYSyVcCFMleJfjGGftno09Bf53bTgcTB
+CnVMAK4b4apwWgDR3cprrmFx8+8i62FRogMpnYf0ai3YjYrKkdkUr+tHy81Yezpz
+ysiRhIDrCyn9PYaebDOQqp0GULpAf5oUQ6al7HFkpvshzS6Ygxx0TpXaW+3a4c4a
+uYw/l6+yAp27PO0N3C2KAj26fb9Q1jKHXJrAfXQ4vbasZT27LzLFaiSEVg/AGH5s
+0FMcLQxjKXvf/N+cECGXegDCtpdjlwQrPwois/cM3h8UTfDKzVb5mBwZmP+z0Dt5
+cibg4ACR9o2OaF6rhMPFvVe2dfCCW2sCAwEAAaOCAvAwggLsMB8GA1UdIwQYMBaA
+FHjfkZBf7t6s9sV169VMVVPvJEq2MB0GA1UdDgQWBBT6/7fAoV087EXt+OTqgkYF
+CzxD8zAnBgNVHREEIDAeggt0YW8xMDI0LmNvbYIPd3d3LnRhbzEwMjQuY29tMD4G
+A1UdIAQ3MDUwMwYGZ4EMAQIBMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuZGln
+aWNlcnQuY29tL0NQUzAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUH
+AwEGCCsGAQUFBwMCMIGABggrBgEFBQcBAQR0MHIwJAYIKwYBBQUHMAGGGGh0dHA6
+Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBKBggrBgEFBQcwAoY+aHR0cDovL2NhY2VydHMu
+ZGlnaWNlcnQuY29tL0VuY3J5cHRpb25FdmVyeXdoZXJlRFZUTFNDQS1HMi5jcnQw
+DAYDVR0TAQH/BAIwADCCAX8GCisGAQQB1nkCBAIEggFvBIIBawFpAHcA7s3QZNXb
+Gs7FXLedtM0TojKHRny87N7DUUhZRnEftZsAAAGOUQwAhQAABAMASDBGAiEA3DSP
+E2qH4VKfRlNGKQDW3owpW2yraOpXC6AAA49Cb7cCIQCjGJStnqYhznkYRJb/pL8U
+pVqaDK5ZA8INDb9ZturCYgB2AEiw42vapkc0D+VqAvqdMOscUgHLVt0sgdm7v6s5
+2IRzAAABjlEMAK4AAAQDAEcwRQIhANCmJpwVv2EBWXloCvVR/y0CHzEyqxgd1sXf
+3P32VlPWAiBIQ6Sa+dYOTv+Pu00HT3/9dpLZc9B7SZ6i25F6lAdT+wB2ANq2v2s/
+tbYin5vCu1xr6HCRcWy7UYSFNL2kPTBI1/urAAABjlEMAFAAAAQDAEcwRQIgG2VJ
+qCTqGiFN5LSPkbU9akoTUdfN2kIv8hZCkhdvMH8CIQC/2lfmbg6OFkplsNz7a4pT
+EXsyD2WZGbSnvZOhPtKc3DANBgkqhkiG9w0BAQsFAAOCAQEAWWEtWDtczVGraOdp
+WmnJISCsAZYoo7mBM6btjvtqBLNjp0BvcZNsxTb7FJKKfNuwWXoeecOcNe50ZVJj
+hUUJHmpVWdpiKCTLj84a6MzxlSkUSFdnLKdlgN/jB+Lxvc9wlccNx/bKeOwoA3XL
+Fym6oHPw3PkcDbyckuvk3KLmOuAOYj5ASRWaVKl2MpOQr4XyOSMESODWGHzDrYg6
+4KCyYSImK4CoI2QwfI3am+R3nQJBwo1FOC6Mae4EpS1uUI+aGnCuHu/LyVET3Owj
+agm2JIMw/KMFu1tIk/A7d1R+VThKTy3Qo3Lga2Tae+lZrniTmMDlswMxfvo3R+63
+u7HFNQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEqjCCA5KgAwIBAgIQDeD/te5iy2EQn2CMnO1e0zANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
+MjAeFw0xNzExMjcxMjQ2NDBaFw0yNzExMjcxMjQ2NDBaMG4xCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xLTArBgNVBAMTJEVuY3J5cHRpb24gRXZlcnl3aGVyZSBEViBUTFMgQ0EgLSBH
+MjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO8Uf46i/nr7pkgTDqnE
+eSIfCFqvPnUq3aF1tMJ5hh9MnO6Lmt5UdHfBGwC9Si+XjK12cjZgxObsL6Rg1njv
+NhAMJ4JunN0JGGRJGSevbJsA3sc68nbPQzuKp5Jc8vpryp2mts38pSCXorPR+sch
+QisKA7OSQ1MjcFN0d7tbrceWFNbzgL2csJVQeogOBGSe/KZEIZw6gXLKeFe7mupn
+NYJROi2iC11+HuF79iAttMc32Cv6UOxixY/3ZV+LzpLnklFq98XORgwkIJL1HuvP
+ha8yvb+W6JislZJL+HLFtidoxmI7Qm3ZyIV66W533DsGFimFJkz3y0GeHWuSVMbI
+lfsCAwEAAaOCAU8wggFLMB0GA1UdDgQWBBR435GQX+7erPbFdevVTFVT7yRKtjAf
+BgNVHSMEGDAWgBROIlQgGJXm427mD/r6uRLtBhePOTAOBgNVHQ8BAf8EBAMCAYYw
+HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
+Y2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQu
+Y29tL0RpZ2lDZXJ0R2xvYmFsUm9vdEcyLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG
+/WwBAjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
+MAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAQEAoBs1eCLKakLtVRPFRjBIJ9LJ
+L0s8ZWum8U8/1TMVkQMBn+CPb5xnCD0GSA6L/V0ZFrMNqBirrr5B241OesECvxIi
+98bZ90h9+q/X5eMyOD35f8YTaEMpdnQCnawIwiHx06/0BfiTj+b/XQih+mqt3ZXe
+xNCJqKexdiB2IWGSKcgahPacWkk/BAQFisKIFYEqHzV974S3FAz/8LIfD58xnsEN
+GfzyIDkH3JrwYZ8caPTf6ZX9M1GrISN8HnWTtdNCH2xEajRa/h9ZBXjUyFKQrGk2
+n2hcLrfZSbynEC/pSw/ET7H5nWwckjmAJ1l9fcnbqkU/pf6uMQmnfl0JQjJNSg==
+-----END CERTIFICATE-----

+ 1 - 0
verify_b05e137e3fa13af753763f22554343fd.html

@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><meta id="wxpaycode" content="f4cb8ca2d6eeec517c0492526326c2bf"></head><body></body></html>