package main import ( "database/sql" "fmt" "log" "net/http" ) type TransactionDB struct { h *sql.DB } var db TransactionDB func (m *TransactionDB) conn(c AppConfig) error { dbDriver := c.DB.Driver dbUser := c.DB.User dbPass := c.DB.Pass dbName := c.DB.Schema h, err := sql.Open(dbDriver, dbUser+":"+dbPass+"@/"+dbName) if err != nil { panic(err.Error()) } m.h = h fmt.Printf("%x", h) return err } func (m *TransactionDB) close() { defer m.h.Close() } func (m *TransactionDB) addRequest(r *http.Request) error { if err := m.conn(Config); err != nil { return err } r.ParseForm() //assuming form has been parsed pickupUrl := r.Form["pickupUrl"][0] receiveUrl := r.Form["receiveUrl"][0] signType := r.Form["signType"][0] orderNo := r.Form["orderNo"][0] orderAmount := r.Form["orderAmount"][0] orderCurrency := r.Form["orderCurrency"][0] customerId := r.Form["customerId"][0] sign := r.Form["sign"][0] valid := isLeanworkFormValid(r.Form) ip4 := getClientIPLong(r) insForm, err := m.h.Prepare("INSERT INTO request(pickupUrl, receiveUrl, signType, orderNo, orderAmount, orderCurrency, customerId, sign, valid, ip4) VALUES(?,?,?,?,?,?,?,?,?,?)") if err == nil { insForm.Exec(pickupUrl, receiveUrl, signType, orderNo, orderAmount, orderCurrency, customerId, sign, valid, ip4) log.Println("INSERT: customerId: " + customerId + " | orderAmount: " + orderCurrency + " " + orderAmount) } m.close() return err } func (m *TransactionDB) addRpnOut(r RpnReq) error { } func (m *TransactionDB) updateRpnOutNameAndCard(orderid string, signature string, name string, card string) error { }