예제 #1
0
    def doStoreSuccess(self, request):
        mo = MsgPack()
        mi = self.checkStoreAction.check(request)
        if mi.error:
            mo.setError(1, mi.error)
        else:
            clientId = tysessiondata.getClientId(mi.userId)
            if mi.buyType == '1':  # 钻石
                chargedRmbs = 0
                chargedDiamonds = 0
                consumeCoin = mi.price
            else:
                chargedRmbs = mi.price
                chargedDiamonds = mi.count * mi.prodDiamond
                consumeCoin = 0

            params = {
                'userId': mi.userId,
                'appId': tyglobal.gameId(),
                'realGameId': tyglobal.gameId(),
                'clientId': clientId,
                'prodOrderId': mi.orderId,
                'prodId': mi.productId,
                'prodCount': 1,
                'chargeType': 'tester',
                'chargedRmbs': chargedRmbs,
                'chargedDiamonds': chargedDiamonds,
                'consumeCoin': consumeCoin,
                '_test_': 1,
            }
            url = tyglobal.httpGame(
            ) + '/api/hall5/store/consume/delivery?' + ftstr.toHttpStr(params)
            _, ret = fthttp.queryHttp('GET', url, None, None, 5)
            if ret != 'success':
                mo.setError(1, ret)
            else:
                mo.setResult('ok', 1)

            if chargedRmbs > 0 or chargedDiamonds > 0:
                params = {
                    'appId': tyglobal.gameId(),
                    'clientId': clientId,
                    'userId': mi.userId,
                    'realGameId': tyglobal.gameId(),
                    'prodId': mi.productId,
                    'chargedRmbs': chargedRmbs,
                    'chargedDiamonds': chargedDiamonds,
                    '_test_': 1,
                }
                url = tyglobal.httpGame(
                ) + '/api/hall5/store/consume/notify?' + ftstr.toHttpStr(
                    params)
                ret = fthttp.queryHttp('GET', url, None, None, 5)

        return mo
예제 #2
0
def uploadVideo(uploadUrl, token, uploadPath, videoData):
    try:
        filename = os.path.basename(uploadPath)
        formItems = []
        formItems.append(MultipartForm.FormItemData('token', token))
        formItems.append(MultipartForm.FormItemData('key', uploadPath))
        formItems.append(
            MultipartForm.FormItemFile('file', videoData, filename))
        #formItems.append(FormItemFile('fileBinaryData', videoData, filename))

        headers, uploadData = MultipartForm.encodeFormItems(formItems)
        retrydata = {'max': 3}
        code, res = fthttp.queryHttp(method='POST',
                                     url=uploadUrl,
                                     header=headers,
                                     body=uploadData,
                                     connect_timeout=5,
                                     retrydata=retrydata)
        if ftlog.is_debug():
            ftlog.debug('uploader.uploadVideo uploadUrl=', uploadUrl,
                        'uploadPath=', uploadPath, 'token=', token, 'ret=',
                        (code, res))

        if code == 200 or code == 406:  # 406 文件已经存在
            return 0, '上传成功'

        ftlog.info('uploader.uploadVideo Res uploadUrl=', uploadUrl,
                   'uploadPath=', uploadPath, 'token=', token, 'ret=', code)
        return -1, '上传失败'
    except:
        return -2, '上传失败'
예제 #3
0
 def doStoreBuy(self, request):
     mo = MsgPack()
     mi = self.checkStoreBuy.check(request)
     if mi.error:
         mo.setError(1, mi.error)
     else:
         clientId = tysessiondata.getClientId(mi.userId)
         orderId = ftstr.uuid()
         params = {
             'appId': tyglobal.gameId(),
             'realGameId': tyglobal.gameId(),
             'clientId': clientId,
             'userId': mi.userId,
             'prodId': mi.productId,
             'prodCount': mi.count,
             'prodOrderId': orderId,
             '_test_': 1,
         }
         url = tyglobal.httpGame(
         ) + '/api/hall5/store/consume/transaction?' + ftstr.toHttpStr(
             params)
         _, ret = fthttp.queryHttp('GET', url, None, None, 5)
         if ret != 'ok':
             mo.setError(1, ret)
         else:
             mo.setResult('ok', 1)
     return mo
예제 #4
0
 def doAudit(self, request, result):
     mo = MsgPack()
     mi = self.checkExchange.check(request)
     if mi.error:
         mo.setError(1, mi.error)
     else:
         params = {
             'userId': mi.userId,
             'result': result,
             'realGameId': tyglobal.gameId(),
             'exchangeId': mi.exchangeId,
             'extOrderId': 'dummy_jd_num_audit',
             '_test_': 1,
         }
         url = tyglobal.httpGame(
         ) + '/api/hall5/exchange/auditCallback?' + ftstr.toHttpStr(params)
         _, ret = fthttp.queryHttp('GET', url, None, None, 5)
         if ret and ret[0] == '{':
             mo.updateResult(ftstr.loads(ret))
         else:
             mo.setError(1, ret)
     return mo
예제 #5
0
    def doStoreCancel(self, request):
        mo = MsgPack()
        mi = self.checkStoreActionTerm.check(request)
        if mi.error:
            mo.setError(1, mi.error)
        else:
            params = {
                'userId': mi.userId,
                'appId': tyglobal.gameId(),
                'realGameId': tyglobal.gameId(),
                'errinfo': 'test error',
                'prodOrderId': mi.orderId,
                'prodId': mi.productId,
                '_test_': 1,
            }
            url = tyglobal.httpGame(
            ) + '/api/hall5/store/pay/cancel?' + ftstr.toHttpStr(params)
            _, ret = fthttp.queryHttp('GET', url, None, None, 5)
            if ret != 'success':
                mo.setError(1, ret)
            else:
                mo.setResult('ok', 1)

        return mo