def orderCallback(oId, userId, status, order): ''' 根据支付结果更新订单的状态 :param oId:RechargeFlow Id :param userId:用户Id :param status: 支付是否成功,1为成功,3为等待验证 :param order:第三方平台返回订单信息,包括错误码 :return: ''' log.debug('oId:%s, userId:%s, status:%d, order:%s', oId, userId, status, order) ###更新充值流水记录 orderHelper = ClassHelper("RechargeFlow") rechargeFlow = orderHelper.get(oId) walletHelper = ClassHelper("Wallet") walletInfo = walletHelper.find_one({"user": userId}) if status == 1: # 充值成功,更新钱包 rechargeFlow_action = { 'destClass': 'RechargeFlow', 'query': { "_id": oId }, 'action': { "@set": { "status": status, "order": order } } } if not walletInfo: # 未找到钱包直接创建 wallet = {"user": userId, 'balance': rechargeFlow['amount']} walletInfo = walletHelper.create(wallet, transaction=[rechargeFlow_action]) else: wallet = {"$inc": {'balance': rechargeFlow['amount']}} walletInfo = walletHelper.update(walletInfo['_id'], wallet, transaction=[rechargeFlow_action]) return walletInfo else: rechargeFlow = orderHelper.update( oId, {"$set": { "status": status, "order": order }}) return rechargeFlow
def save(self): from helper.ClassHelper import ClassHelper classHelper = ClassHelper(self.className) if self.objectId == None: if self.dirty.has_key('_sid'): self.dirty['_id'] = ObjectId(self.dirty['_sid']) del (self.dirty['_sid']) obj = classHelper.create(self.dirty) if obj == None: return False self.objectId = obj['_id'] else: obj = classHelper.update(self.objectId, self.dirty) if obj == None: return False for k in obj: dict.__setitem__(self, k, obj[k]) self.dirty.clear() return True
if coinSetting and coinSetting['status'] == 1: item = {} item['user'] = self.user['_id'] item['recharge'] = coinSetting['price'] item['amount'] = coinSetting['amount'] + coinSetting['free'] item['os'] = coinSetting['os'] item['platform'] = coinSetting['platform'] try: item['channel'] = self.request.headers.get("X-MeCloud-Channel", None) item['version'] = self.request.headers.get("X-MeCloud-Client", None) except: pass item['orderNo'] = self.createOrderNo() item['status'] = 0 classHelper = ClassHelper("RechargeFlow") reObj = classHelper.create(item) self.write(json.dumps({'_id': reObj['_id'], 'appleId': coinSetting['appleId']}, cls=MeEncoder)) else: log.err("user %s appleRecharge error", self.user['_id']) self.write(ERR_PARA.message) except Exception, ex: log.err("user %s appleRecharge error:%s", self.user['_id'], ex) self.write(ERR_PARA.message) # 苹果支付状态上传服务器 def completeAppleAppOrder(self): try: obj = json.loads(self.request.body) except Exception, e: log.err("JSON Error:[%d/%s] , error:%s", len(self.request.body), self.request.body, str(e)) self.write(ERR_INVALID.message)
elif action == "qrcode": if not self.request.arguments.has_key( 'shareTargetId') or not self.request.arguments.has_key( 'shareType'): self.write(ERR_PATH_PERMISSION.message) return shareType = int(self.get_argument("shareType")) shareTargetId = self.get_argument("shareTargetId") # 记录图片分享 try: shareRecordHelper = ClassHelper("ShareRecords") shareInfo = shareRecordHelper.create({ "from": self.user['_id'], "shareTargetId": shareTargetId, "type": shareType, "compareFaceId": self.get_argument("compareFaceId") }) url = "http://heyhoney.blinnnk.com/" + "?compareId=" + shareInfo[ '_id'] self.write(json.dumps({"url": url})) except: self.write(ERR_PATH_PERMISSION.message) elif action == "sharerecord": if not self.request.arguments.has_key('compareId'): self.write(ERR_PATH_PERMISSION.message) return compareId = self.get_argument("compareId")