Esempio n. 1
0
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
Esempio n. 2
0
    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
Esempio n. 3
0
            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)
Esempio n. 4
0
        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")