| @@ -69,9 +69,8 @@ func answerWechatPost(w http.ResponseWriter, r *http.Request) { | |||
| if !valid { | |||
| log.Println("Error: Invalid Input ") | |||
| } | |||
| //are we in an existing procedure | |||
| openID := in.header.FromUserName | |||
| //are we in an existing procedure | |||
| inProc, state := isInProc(openID) //if inside a procedure, resume last saved state | |||
| if inProc { | |||
| state = serveProc(state, in) //transit to new state | |||
| @@ -89,11 +88,15 @@ func answerWechatPost(w http.ResponseWriter, r *http.Request) { | |||
| w.Header().Set("Content-Type", "text/xml; charset=utf-8") | |||
| fmt.Fprint(w, reply) | |||
| err := saveChatState(openID, state.Procedure, state) | |||
| if err != nil { | |||
| log.Println("Error Cannot Save chat sate") | |||
| log.Println(err) | |||
| log.Println(state) | |||
| if !isEndingState(state) { | |||
| err := saveChatState(openID, state.Procedure, state) | |||
| if err != nil { | |||
| log.Println("Error Cannot Save chat sate") | |||
| log.Println(err) | |||
| log.Println(state) | |||
| } | |||
| } else { //state ending | |||
| cleanProcedure(openID, state.Procedure) | |||
| } | |||
| return | |||
| } | |||