payment gateway for rpn cn
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

59 lignes
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. }