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.

92 lignes
2.1KB

  1. package main
  2. import (
  3. "database/sql"
  4. "log"
  5. "strconv"
  6. "github.com/go-sql-driver/mysql"
  7. )
  8. type RpnIn struct {
  9. Id int64
  10. Leanwork int64
  11. Order_id string
  12. Order_time string
  13. Order_amount string
  14. Deal_id string
  15. Deal_time string
  16. Pay_amount string
  17. Pay_result string
  18. Signature string
  19. Ts mysql.NullTime
  20. }
  21. //get given RpnIn record based on ID
  22. func getRpnInById(id int64) (ret RpnIn, err error) {
  23. if err = db.conn(Config); err != nil {
  24. return
  25. }
  26. defer db.close()
  27. q := "SELECT * FROM rpnIn WHERE id = ? "
  28. err = db.h.QueryRow(q, id).Scan(
  29. &ret.Id, &ret.Leanwork, &ret.Order_id,
  30. &ret.Order_time, &ret.Order_amount, &ret.Deal_id,
  31. &ret.Deal_time, &ret.Pay_amount, &ret.Pay_result,
  32. &ret.Signature, &ret.Ts)
  33. if err != nil {
  34. if err == sql.ErrNoRows {
  35. log.Println("trying to retrieve rpnIn(" + strconv.FormatInt(id, 10) + ") but not found")
  36. } else {
  37. log.Println("Error retrieving rpnIn(" + strconv.FormatInt(id, 10) + ") encountered : " + err.Error())
  38. }
  39. }
  40. return
  41. }
  42. //add to database
  43. func (m *RpnIn) add() (ret RpnIn, err error) {
  44. if err = db.conn(Config); err != nil {
  45. return
  46. }
  47. defer db.close()
  48. q := `"INSERT INTO rpnIn(
  49. leanwork, order_id, order_time, order_amount, deal_id,
  50. deal_time, pay_amount, pay_result, signature)
  51. VALUES(?,?,?,?,?,?,?,?,?)
  52. `
  53. insForm, err := db.h.Prepare(q)
  54. if err != nil {
  55. log.Printf("Failed to prepare SQL statment for insert")
  56. return
  57. }
  58. res, err := insForm.Exec(
  59. m.Leanwork, m.Order_id, m.Order_time, m.Order_amount, m.Deal_id,
  60. m.Deal_time, m.Pay_amount, m.Pay_result, m.Signature)
  61. if err != nil {
  62. log.Printf("Error inserting rpnIn with orderNo =%s \n", m.Order_id)
  63. return
  64. }
  65. id, err := res.LastInsertId()
  66. if err != nil {
  67. log.Printf("Cannot retrieve lastInsertId for orderID %s", m.Order_id)
  68. return
  69. }
  70. return getRpnInById(id)
  71. }
  72. func (m *RpnIn) signature() string {
  73. s := "order_id=" + m.Order_id
  74. s += "|order_time=" + m.Order_time
  75. s += "|order_amount=" + m.Order_amount
  76. s += "|deal_id=" + m.Deal_id
  77. s += "|deal_time=" + m.Deal_time
  78. s += "|pay_amount=" + m.Pay_amount
  79. s += "|pay_result=" + m.Pay_result
  80. return s
  81. }