def payfor_shopcart(self, userobj): """ 购物车结算模块,功能包括:购物车付款、购物记录写入文件、 :param kwargs: 字典参数 {cost=购物车金额, userobj=用户对象} :return: """ # 判断用户有没有绑定信用卡 if not userobj.bindcard: # 用户没有绑定信用卡,直接返回错误,在外层绑卡 return errorcode.CARD_NOT_BINDED else: # 用户绑定了信用卡了, 获取信用卡信息(实例化对象) cardobj = CreditCard(userobj.bindcard) # 卡余额够吗 if cardobj.credit_balance < self.shopping_cost: common.show_message("您的信用卡本月额度不够! ", "NOTICE") return errorcode.BALANCE_NOT_ENOUGHT else: # 生成一个流水号 serno = common.create_serialno() # 调用卡的支付模块进行支付 cardobj.card_pay(self.shopping_cost, 1, serno) # 记录购物流水 shopping_record = {userobj.username: {"time": datetime.now().strftime("%Y-%m-%d %H:%M"), "cost": self.shopping_cost, "serno": serno, "detail": self.shopping_cart}} # 写入报表记录文件 dbapi.append_db_json(shopping_record, self.__shop_report_file) # 购物结算完成后将对象的购物车清空, 购物车商品总价清0 ,待下次购物 self.shopping_cart.clear() self.shopping_cost = 0 return errorcode.NO_ERROR
def fetch_money(self, count, passwd): """ 提现 :param count: 提现金额 :param passwd:信用卡提现密码 :return: 返回错误类型码 """ totalfee = count + count * self.feerate check_result = self._pay_check(totalfee, passwd) if check_result == errorcode.NO_ERROR: # 扣取提现金额并写入数据库,生成账单 self.card_pay(count, 3, common.create_serialno()) # 扣取手续费并写入数据库, 生成账单 self.card_pay(count * self.feerate, 4, common.create_serialno()) return errorcode.NO_ERROR else: return check_result
def translate_money(self, trans_count, passwd, trans_cardobj): """ 信用卡转账模块 :param trans_count: 要转账的金额 :param passwd: 信用卡密码 :param trans_cardobj: 对方卡号对应的卡对象 :return: 转账结果 """ totalfee = trans_count + trans_count * self.feerate check_result = self._pay_check(totalfee, passwd) if check_result == errorcode.NO_ERROR: # 先扣款,生成消费流水账单 self.card_pay(trans_count, 2, common.create_serialno()) # 扣手续费, 生成消费流水账单 self.card_pay(trans_count * self.feerate, 4, common.create_serialno()) # 给对方卡充值,并写入数据库文件 trans_cardobj.credit_balance += totalfee trans_cardobj.update_card() return errorcode.NO_ERROR else: return check_result