code: func (ctrl Controller) CompleteCreditCard(w http.ResponseWriter, req *http.Request) {
  	req.ParseForm()
  
  	order := getCurrentOrder(w, req)
  
  	expMonth, _ := strconv.Atoi(req.Form.Get("exp_month"))
  	expYear, _ := strconv.Atoi(req.Form.Get("exp_year"))
  
  	creditCard := gomerchant.CreditCard{
  		Name:     req.Form.Get("name"),
  		Number:   req.Form.Get("creditcard"),
  		CVC:      req.Form.Get("cvv"),
  		ExpYear:  uint(expYear),
  		ExpMonth: uint(expMonth),
  	}
  
  	if creditCard.ValidNumber() {
  		// TODO integrate with https://github.com/qor/gomerchant to handle those information
  		tx := utils.GetDB(req)
  		err := orders.OrderState.Trigger("checkout", order, tx, "")
  
  		if err == nil {
  			tx.Save(order)
  			http.Redirect(w, req, "/cart/success", http.StatusFound)
  			return
  		}
  	}
  
  	utils.AddFlashMessage(w, req, "Invalid Credit Card", "error")
  	http.Redirect(w, req, "/cart", http.StatusFound)
  }
docs: // CompleteCreditCard complete shopping cart with credit card