package weixinrpc
							 | 
						|
								
							 | 
						|
								import (
							 | 
						|
									"encoding/json"
							 | 
						|
									"strconv"
							 | 
						|
									"time"
							 | 
						|
								
							 | 
						|
									"git.tetele.net/tgo/crypter"
							 | 
						|
								
							 | 
						|
									"github.com/golang/protobuf/proto"
							 | 
						|
								)
							 | 
						|
								
							 | 
						|
								func GetMiniAppQrcode(siteId, appId, appSecret string, qrcodeParams map[string]interface{}, url ...string) (string, error) {
							 | 
						|
								
							 | 
						|
									conn, err := rpc_server_conn(url...)
							 | 
						|
									if err != nil {
							 | 
						|
										return "", err
							 | 
						|
									}
							 | 
						|
									defer conn.Close()
							 | 
						|
								
							 | 
						|
									data := map[string]interface{}{}
							 | 
						|
									data["site_id"] = siteId
							 | 
						|
									data["app_id"] = appId
							 | 
						|
									data["app_secret"] = appSecret
							 | 
						|
									data["qrcode"] = qrcodeParams
							 | 
						|
								
							 | 
						|
									data_json, err := json.Marshal(data)
							 | 
						|
									if err != nil {
							 | 
						|
										return "", err
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									encryData := crypter.DesEn(string(data_json), DES_KEY)
							 | 
						|
								
							 | 
						|
									now_int64 := time.Now().Unix()
							 | 
						|
								
							 | 
						|
									now := strconv.FormatInt(now_int64, 10)
							 | 
						|
								
							 | 
						|
									sign := Sign(encryData, now)
							 | 
						|
								
							 | 
						|
									req := &Request{
							 | 
						|
										proto.String(encryData),
							 | 
						|
										proto.String(now),
							 | 
						|
										proto.String(sign),
							 | 
						|
										nil}
							 | 
						|
								
							 | 
						|
									res := &Response{}
							 | 
						|
								
							 | 
						|
									err = conn.GetMiniappQrcode(req, res)
							 | 
						|
								
							 | 
						|
									if err != nil {
							 | 
						|
										return "", err
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									// 解密
							 | 
						|
									res_data_de, err := GetOrgData(res)
							 | 
						|
								
							 | 
						|
									if err != nil {
							 | 
						|
										return "", err
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									return res_data_de, nil
							 | 
						|
								}
							 |