payment gateway for rpn cn
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

59 lines
1.4KB

  1. package main
  2. import (
  3. "database/sql"
  4. "fmt"
  5. "log"
  6. "net/http"
  7. )
  8. type TransactionDB struct {
  9. h *sql.DB
  10. }
  11. var db TransactionDB
  12. func (m *TransactionDB) conn(c AppConfig) error {
  13. dbDriver := c.DB.Driver
  14. dbUser := c.DB.User
  15. dbPass := c.DB.Pass
  16. dbName := c.DB.Schema
  17. h, err := sql.Open(dbDriver, dbUser+":"+dbPass+"@/"+dbName)
  18. if err != nil {
  19. panic(err.Error())
  20. }
  21. m.h = h
  22. fmt.Printf("%x", h)
  23. return err
  24. }
  25. func (m *TransactionDB) close() {
  26. defer m.h.Close()
  27. }
  28. func (m *TransactionDB) addRequest(r *http.Request) error {
  29. if err := m.conn(Config); err != nil {
  30. return err
  31. }
  32. r.ParseForm()
  33. //assuming form has been parsed
  34. pickupUrl := r.Form["pickupUrl"][0]
  35. receiveUrl := r.Form["receiveUrl"][0]
  36. signType := r.Form["signType"][0]
  37. orderNo := r.Form["orderNo"][0]
  38. orderAmount := r.Form["orderAmount"][0]
  39. orderCurrency := r.Form["orderCurrency"][0]
  40. customerId := r.Form["customerId"][0]
  41. sign := r.Form["sign"][0]
  42. valid := isLeanworkFormValid(r.Form)
  43. ip4 := getClientIPLong(r)
  44. insForm, err := m.h.Prepare("INSERT INTO request(pickupUrl, receiveUrl, signType, orderNo, orderAmount, orderCurrency, customerId, sign, valid, ip4) VALUES(?,?,?,?,?,?,?,?,?,?)")
  45. if err == nil {
  46. insForm.Exec(pickupUrl, receiveUrl, signType, orderNo, orderAmount, orderCurrency, customerId, sign, valid, ip4)
  47. log.Println("INSERT: customerId: " + customerId + " | orderAmount: " + orderCurrency + " " + orderAmount)
  48. }
  49. m.close()
  50. return err
  51. }