Просмотр исходного кода

find existing user form CRM database, and reply differently.

master
Patrick Peng Sun 8 лет назад
Родитель
Сommit
6863823efd
1 измененных файлов: 58 добавлений и 6 удалений
  1. +58
    -6
      eventSubscribe.go

+ 58
- 6
eventSubscribe.go Просмотреть файл

@@ -6,14 +6,39 @@ import (
"io/ioutil"
"log"
"net/http"
"time"
)

func onSubscribe(in InWechatMsg) {
openID := in.header.FromUserName
//getUser fromCRM
info := WechatUserInfo{}
info.getUserInfo(in.header.FromUserName, "zh-CN")
log.Println(openID + " information get above onSubscribe")
//check whether we have his own record in the CRM system
info, found, err := crmFindOpenID("weid")
log.Println(info)
//existing user
if found && err == nil {
sendGreeting4ExistingUser(in, info)
return
}

//new user
if !found && err == nil { //something is seriously wrong
//get user info from wechat
info := WechatUserInfo{}
err := info.getUserInfo(openID, "zh_CN")
if err != nil {
log.Printf("ERROR: failed to get userinfo [%s] ", openID)
log.Println(err)
//registerNewUser(openID)
} else {
//registerNewUserWithInfo(openID, info)
}
//AskUserFillupBasicInfo()
}

//some error
if err != nil {

}
}

//WechatUserInfo response for wechat user info.
@@ -34,17 +59,24 @@ type WechatUserInfo struct {
TagIDList []int32 `json:"tagid_list"`
}

func (m *WechatUserInfo) getUserInfo(openID string, lang string) {
func (m *WechatUserInfo) getUserInfo(openID string, lang string) (err error) {
url := m.getURL(openID, lang)
resp, err := http.Get(url)
if err != nil {
*m = WechatUserInfo{}
return err
}
b, err := ioutil.ReadAll(resp.Body)
err = json.Unmarshal(b, m)
log.Println(m)
return nil
}

//lang 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语
func (m *WechatUserInfo) getURL(openID, lang string) string {
if lang != "zh_CN" && lang != "zh_TW" && lang != "en" {
log.Printf("WechatUserInfo/getURL: Unknow Lang %s, change to zh_CN", lang)
lang = "zh_CN"
}
atk, _ := GetAccessToken()
u := fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/user/info?access_token=%s&openid=%s&lang=%s", atk, openID, lang)
return u
@@ -53,3 +85,23 @@ func (m *WechatUserInfo) getURL(openID, lang string) string {
func (m *WechatUserInfo) save2CRM() {

}

func askUserFillupBasicInfo(in InWechatMsg) {
first := "欢迎加入海外学子之家,这里凝聚着哈工大人在澳洲的,勤奋,努力和奋斗"
url := "http://wechat.hitxy.org.au/profile_newly_register"
remark := "如果您是首次加入本社区,请点击详情完善您的个人资料"
communityName := "哈工大澳洲校友会"
joinDate := time.Now().Format("2006-Jan-02")
templateSendJoinCommunity(in.header.FromUserName, url, first, remark, communityName, joinDate)
}

func sendGreeting4ExistingUser(in InWechatMsg, info crmLeadInfo) {

first := "欢迎" + info.Name + "返回澳洲校友会"
url := "http://wechat.hitxy.org.au/profile_newly_register"
remark := ""
communityName := "哈工大澳洲校友会"
joinDate := info.getCreatedAt().Format("2006-Jan-02")
templateSendJoinCommunity(in.header.FromUserName, url, first, remark, communityName, joinDate)

}

Загрузка…
Отмена
Сохранить