Exemplo n.º 1
0
 def test_login(self):
     user_agent = base_data.get_user_agent()
     uuid = base_data.get_random_number() + '-' + base_data.get_random_letter_number(12).lower()
     login = http_handler.login.Login('jd_60aaf2f598861', 'e4e333', uuid, user_agent)
     cookie = login.get_cookie()
     print cookie
     print login.get_h5_cookie(cookie)
Exemplo n.º 2
0
def get_req_data(username, password, jd_uuid, cmd1=2, cmd2=6):
    # jd_uuid = '867323020350896-a086c68dae09'
    username_len = hex(len(username)).replace('0x', '')
    if len(username_len) == 1:
        username_len = '0' + username_len
    account = '00%s%s0020%s' % (username_len, username.encode(
        'hex'), str(hashlib.md5(password).hexdigest().encode('hex')))

    account = '000200' + hex(len(account) / 2).replace('0x', '') + account
    device_finger_print = '00040034' + ('000a0001000404020020' + hashlib.md5(
        jd_uuid.split('-')[1] + base_data.get_random_letter_number(7)).
                                        hexdigest().upper()).encode('hex')
    device = '0008005d000200640007616e64726f69640005342e342e320005352e342e300008313238302a37323000056a646170700004776966690000001c%s000000010005322e342e300048001100036e6f7800034d693400034d49340000' % (
        jd_uuid.encode('hex'))
    header = '0YXX0000000000000001000000010000000100000000000%d000%d0064011100' % (
        cmd1, cmd2)

    data = (header + account + device_finger_print + device).upper()
    length = hex(len(data) / 2).replace('0x', '')

    if len(str(length)) < 3:
        data = data.replace('Y', '0').replace('XX', length)
    else:
        data = data.replace('Y', length[0]).replace('XX', length[1:3])

    encrypt_addr = d_encrypt_dll.Teaencryption(KEY, data)
    encrypt_p = ctypes.c_char_p(encrypt_addr)

    req_data = KEY + ' ' + encrypt_p.value
    req_data_array = map(lambda x: int(x, 16), req_data.split(' '))
    return base64.b64encode(bytearray(req_data_array))
Exemplo n.º 3
0
def get_special_coupon(userid, sessionid, mark):
    headers = {
        'content-type':
        'application/json; charset=UTF-8',
        'User-Agent':
        base_data.get_user_agent(),
        'Origin':
        'http://m.tuniu.com',
        'Referer':
        'http://m.tuniu.com/event/couponCenter/mainCenter/index?utm_source=morecoupon&utm_medium=couponcenter&q=1005',
        'X-Requested-With':
        'com.tuniu.app.ui',
        'Cookie':
        'PageSwitch=2,%s; _tacau=MCwzYTY0MTU4Ni1mZDI3LTQyMWUtZDI3NS1kNGI1ZDEzNDU1ODcs; _tacz2=taccsr=(direct)|tacccn=(none)|taccmd=(none)|taccct=(none)|taccrt=(none); _taca=1477397184786.1477397184786.1477397184786.1; _tacc=1; SERVERID=dnionD; app_imei=%s; ov=1; tuniuuser_id=%d;  TUNIUmuser=%s; sessionId=MQ==; token=%s; appVersion=9.0.6; tuniu_partner=MTU0NDcsMCwsOWIxMTFkNWY3NGQ1NmQ1NjdhNjEyZDQzYjEzYjVlYjI=; deviceType=1; SsoSession=%s; clientType=20; page_flag=; __utma=1.1665134217.1477397186.1477397186.1477397188.2; __utmb=1.4.10.1477397188; __utmc=1; __utmz=1.1477397188.2.2.utmcsr=morecoupon|utmccn=(not set)|utmcmd=couponcenter; _tact=NTExZDJiZTYtNGUxOS05Y2E2LWJlNjEtMTM0ZDMwYmMwNDRh; _tacb=NTFiZjQ2ZjgtZWZmNi1iYzUzLWFkNmQtZGQwMTZkZGQ4ZmU1'
        % (str(time.time()).replace(
            '.', ''), base_data.get_random_number(), userid, sessionid,
           base64.b64encode(base_data.get_random_letter_number()), sessionid)
    }

    req = requests.get(
        'http://dynamic.m.tuniu.com/event/couponCenter/MainCenter/getSpecialAjax?tab_id=9&mark=%s&tel=&q=1005'
        % mark,
        headers=headers)
    logger.debug('GET %s \n%s' % (req.url, req.headers))
    try:
        return req.json()
    except Exception, e:
        raise HttpRequestException(
            e, {
                'function': 'click_special_coupon',
                'method': 'get',
                'url': req.url,
                'headers': headers,
                'resp_content': req.content
            })
Exemplo n.º 4
0
 def test_login(self):
     user_agent = base_data.get_user_agent()
     uuid = base_data.get_random_number(
     ) + '-' + base_data.get_random_letter_number(12).lower()
     login = http_handler.login.Login('17044006148', 'qqqzzz123', uuid,
                                      user_agent)
     cookie = login.get_cookie()
     print cookie
     print login.get_h5_cookie(cookie)
Exemplo n.º 5
0
 def test_get_couponList(self):
     user_agent = base_data.get_user_agent()
     uuid = base_data.get_random_number(
     ) + '-' + base_data.get_random_letter_number(12).lower()
     login = http_handler.login.Login('17094020074', '95al4b', uuid,
                                      user_agent)
     print login.get_couponList(
         'pin=jd_7237cebe5e1e2; wskey=AAFYv7yjAEAY3oNhf4518qnKnh2T-kTanh8UVmUyIpPVAul2_XiQru8dX4xc1f-Lx2DmSoBGZgE46Ma0mK2OnBzYGPDR8LX1; whwswswws=',
         '9410795545')
Exemplo n.º 6
0
 def test_login(self):
     user_agent = base_data.get_user_agent()
     uuid = base_data.get_random_number(
     ) + '-' + base_data.get_random_letter_number(12).lower()
     login = http_handler.login.Login('13060470262', 'xf12345678', uuid,
                                      user_agent)
     cookie = login.get_cookie()
     print cookie
     print login.get_h5_cookie(cookie)
Exemplo n.º 7
0
 def test_login(self):
     user_agent = base_data.get_user_agent()
     uuid = base_data.get_random_number(
     ) + '-' + base_data.get_random_letter_number(12).lower()
     username = '******'
     login = http_handler.login.Login(username, '666xxxxx', uuid,
                                      user_agent)
     cookie = login.get_cookie()
     print cookie
     print login.get_h5_cookie(cookie)
Exemplo n.º 8
0
    def login_test(self):
        url = 'http://wlogin.m.jd.com/applogin_v2'
        uuid = base_data.get_random_number() + '-' + base_data.get_random_letter_number(12)
        print uuid

        data = auth.get_req_data('18445855491', 'znvd9h', uuid)
        req = requests.post(url, data=data, headers={'User-Agent': 'Android WJLoginSDK 1.4.2'})
        resp = req.text
        print resp

        cookie = auth.get_cookie(resp)
        print cookie
Exemplo n.º 9
0
 def test_get_couponList(self):
     user_agent = base_data.get_user_agent()
     uuid = base_data.get_random_number(
     ) + '-' + base_data.get_random_letter_number(12).lower()
     login = http_handler.login.Login('18311647121', '97abccycycy', uuid,
                                      user_agent)
     coupon_list = login.get_couponList(
         'pin=jd_45881dc641d96; wskey=AAFZ9shzAEAOOPsvYBESTeF1GcRTh7ECxJWYJYYEEHeLS8Dd4pTt9_BN8HfXUBymn97RQNn8_X_zZ8eicj_eS_eIgTMt0eP-; whwswswws=00',
         '21212811453')
     print coupon_list
     if not coupon_list:
         print 'not found'
     else:
         print 'find it'
Exemplo n.º 10
0
 def test_get_couponList(self):
     user_agent = base_data.get_user_agent()
     uuid = base_data.get_random_number(
     ) + '-' + base_data.get_random_letter_number(12).lower()
     login = http_handler.login.Login('jd_552fc39bc08ef', 'nodxbjh4', uuid,
                                      user_agent)
     coupon_list = login.get_couponList(
         'pin=jd_552fc39bc08ef; wskey=AAFasw3nAEBySSgEX1dtP_ksNfg4IgbF8HYscebuYTIUxfAilMdZMbmalnLGR2pGAtK9L48bnuCb-JHdzYIwi8yQk24TKaCg; whwswswws=',
         '32744086077')
     print coupon_list
     if not coupon_list:
         print 'not found'
     else:
         print 'find it'
Exemplo n.º 11
0
def getFromHttpSqs(adsl):
    # url = 'http://vooaa.cn:98/give.do?pw=2985256&number=1'
    url = 'http://139.199.65.115:1218/?name=jd_wait_login&opt=get&auth=Fb@345!'
    logger.info('GET %s' % url)
    resp = requests.get(url)
    if resp.text == 'HTTPSQS_GET_END':
        time.sleep(5)
        return None

    _account = resp.json()

    logger.info('resp: %s' % json.dumps(_account))
    if not _account:
        return

    account = {
        'username': _account['username'],
        'password': _account['password'],
        'valid': 0,
        'cookie': '',
        'h5_cookie': ''
    }
    logger.info('uname:%s,pwd:%s,login...' %
                (account['username'], account['password']))
    uuid = base_data.get_random_number(
    ) + '-' + base_data.get_random_letter_number(12).lower()
    user_agent = base_data.get_user_agent()

    adsl.reconnect()

    try:
        login = http_handler.login.Login(account['username'],
                                         account['password'], uuid, user_agent)
        cookie = login.get_cookie()
        logger.info('login success,cookie:%s' % cookie)
        account['cookie'] = cookie

        h5_cookie = login.get_h5_cookie(cookie)
        logger.info('get h5 cookie:%s' % h5_cookie)

        cookie = 'pt_key=%s;pwdt_id=%s;sid=%s;guid=%s;pt_pin=%s;mobilev=%s' % (
            h5_cookie['pt_key'], h5_cookie['pwdt_id'], h5_cookie['sid'],
            h5_cookie['guid'], h5_cookie['pt_pin'], h5_cookie['mobilev'])

        account['h5_cookie'] = cookie
        account['valid'] = 1
    except Exception, e:
        logger.error('login faild\n%s' % traceback.format_exc())
Exemplo n.º 12
0
def place_order():
    while True:
        partner_order_id = ''

        try:
            currentHour = int(time.strftime('%H', time.localtime(time.time())))
            if currentHour > 22 or currentHour < 7:
                print 'sleep a hour'
                time.sleep(600)
                continue

            logger.info('--------------------------')
            logger.info('get jingdong train data')
            try:
                resp = requests.get(
                    'http://op.ykjd.com/JDTrainOpen/getTaskForJD?order_src=app'
                )
                train = resp.json()
                # train = {"data":"{\"module\":{\"worker\":[{\"assembly\":\"FBServer.Order.TrainJD.Order_TrainJD,FBServer.Order.TrainJD.dll,1.0.0.0\",\"type\":0,\"parms\":None}],\"payer\":None},\"sessionId\":None,\"data\":{\"ticketsInfo\":[{\"coachNo\":\"G1278\",\"departure\":\"漯河西\",\"dptStation\":\"LBN\",\"destination\":\"邢台东\",\"arrStation\":\"EDP\",\"dptDate\":\"2017-04-07\",\"dptTime\":\"\",\"ticketPrice\":204.0000,\"optionType\":1}],\"contactInfo\":{\"name\":\"夏邦初\",\"IDCard\":\"130401197407226837\",\"mobileNo\":\"15077618216\"},\"passengersInfo\":[{\"name\":\"邹凡嘉\",\"IDType\":\"1\",\"IDCard\":\"510123197802174259\",\"mobileNo\":\"15077618216\"},{\"name\":\"夏邦初\",\"IDType\":\"1\",\"IDCard\":\"130401197407226837\",\"mobileNo\":\"15077618216\"}],\"count\":1,\"exData1\":\"O\",\"exData2\":{\"user\":\"15347531101\",\"pwd\":\"aa748578\",\"couponid\":\"9894437370\",\"couponPrice\":\"28.0000\",\"UseAmount\":\"399.0000\",\"cookie\":None,\"orderUser\":\"system\",\"taskType\":1,\"priceSection\":\"300\"},\"fee\":0}}","order_id":"fc9668d6d80d404d94825253ef53029f"}
                partner_order_id = train['order_id']
                logger.debug(json.dumps(train))
            except Exception, e:
                if resp:
                    print resp.text
                print 'get jingdong train data faild'
                time.sleep(5)
                continue

            train = json.loads(train['data'])
            # train={"module":{"worker":[{"assembly":"FBServer.Order.TrainJD.Order_TrainJD,FBServer.Order.TrainJD.dll,1.0.0.0","type":0,"parms":None}],"payer":None},"sessionId":None,"data":{"ticketsInfo":[{"coachNo":"G1278","departure":"漯河西","dptStation":"LBN","destination":"邢台东","arrStation":"EDP","dptDate":"2017-04-07","dptTime":"","ticketPrice":204.0000,"optionType":1}],"contactInfo":{"name":"夏邦初","IDCard":"130401197407226837","mobileNo":"15077618216"},"passengersInfo":[{"name":"邹凡嘉","IDType":"1","IDCard":"510123197802174259","mobileNo":"15077618216"},{"name":"夏邦初","IDType":"1","IDCard":"130401197407226837","mobileNo":"15077618216"}],"count":1,"exData1":"O","exData2":{"user":"******","pwd":"xaf888","couponid":"9837987575","couponPrice":"10.0000","UseAmount":"399.0000","cookie":None,"orderUser":"******","taskType":1,"priceSection":"300"},"fee":0}}
            username = train['data']['exData2']['user'].encode('utf-8')
            password = train['data']['exData2']['pwd']
            logger.info('get orderid:%s,username:%s,password:%s,logon...' %
                        (partner_order_id, username, password))

            uuid = base_data.get_random_number(
            ) + '-' + base_data.get_random_letter_number(12).lower()
            user_agent = base_data.get_user_agent()

            # while True:
            #     adsl_service.reconnect()
            #     return1 = os.system('ping baidu.com')
            #     if return1:
            #         continue
            #     else:
            #         break

            pc_cookie = train['data']['exData2']['pc_cookie']
            couponType = train['data']['exData2']['couponType']
            if not pc_cookie:
                try:
                    pc_cookie = http_handler.jd_pc_login.get_cookie(
                        username, password)
                except Exception:
                    if couponType == 4 or couponType == '4':
                        raise Exception("get pc cookie exception")

                if not pc_cookie:
                    if couponType == 4 or couponType == '4':
                        raise Exception("get pc cookie faild")

            cookie = train['data']['exData2']['app_cookie']
            if not cookie:
                login = http_handler.login.Login(username, password, uuid,
                                                 user_agent)
                cookie = login.get_cookie()
                logger.info('login success,cookie:%s' % cookie)

            h5_cookie = login.get_h5_cookie(cookie)
            logger.info('get h5 cookie:%s' % h5_cookie)

            couponid = ''
            couponPrice = ''
            if train['data']['exData2'].has_key('couponid'):
                couponid = train['data']['exData2']['couponid']
                logger.info('get couponid %s' % couponid)
            if train['data']['exData2'].has_key('couponPrice'):
                couponPrice = train['data']['exData2']['couponPrice']
                logger.info('get couponPrice %s' % couponPrice)

            if couponid:
                logger.info('find out couponid')
                if not login.get_couponList(cookie, couponid):
                    logger.info('faild')
                    raise Exception(u'没有找到优惠卷,%s' % couponid)

            order = http_handler.order.Order(uuid, user_agent, h5_cookie)
            passengers = train['data']['passengersInfo']
            logger.info('add passenger %s' % json.dumps(passengers))
            passenger_ids = ','.join(order.add_passenger(passengers))
            logger.info('add passenger success.ids:%s.' % passenger_ids)

            logger.info('add contract %s' %
                        json.dumps(train['data']['contactInfo']))
            train['data']['contactInfo']['contractId'] = order.add_contract(
                train['data']['contactInfo']['name'],
                train['data']['contactInfo']['mobileNo'])
            logger.info('add contract success.id:%s.' %
                        train['data']['contactInfo']['contractId'])

            order_data = order.gen_order(train, passenger_ids)
            logger.info('order generate success,id:%s.get token...' %
                        order_data['orderid'])

            order_data = order.get_token(order_data)
            logger.info('order token success,%s' % order_data['token'])

            if not (couponid and couponPrice):
                order_data[
                    'coupon'] = '&isGrab=false&payTypes=&couponIds=&couponFee=0'
            else:
                order_data[
                    'coupon'] = '&payTypes=allDCoupon&couponIds=%s&couponFee=%s&isGrab=false&subOrderType=1' % (
                        str(couponid), str(int(float(couponPrice) * 100)))
                # order_data['couponid'] = couponid
                # order_data['couponPrice'] = int(float(couponPrice) * 100)

            logger.info('submit:%s' % json.dumps(order_data))
            if order.submit(order_data):
                logger.info('get order details')
                order_details = order.get_details(order_data['orderid'])
                if order_details:
                    # try:
                    #     resp = requests.get(
                    #         'http://115.29.79.63:9000/api/Cookie/Get?username=%s&password=%s' % (username, password),
                    #         timeout=10)
                    #     data = resp.json()
                    #     if data['Status']:
                    #         pc_cookie = data['Cookie']
                    #     else:
                    #         logger.error(data['Message'])
                    # except requests.exceptions.ReadTimeout:
                    #     logger.error('timeout')
                    # except Exception, e:
                    #     logger.error(e.message)

                    logger.info('erpOrderId %s,callback start...' %
                                order_details['erpOrderId'])
                    resp = requests.get(
                        'http://op.ykjd.com/JDTrainOpen/CallBackForMJD?order_id=%s&jdorder_id='
                        '%s&success=true&order_no=%s&amount=%s&order_src=app&checi=%s&seatTyp=%s&cookie=%s'
                        % (partner_order_id, order_details['erpOrderId'],
                           order_data['orderid'],
                           order_details['onlinePayFee'], order_data['cheCi'],
                           order_data['seatType'], pc_cookie))
                    logger.info(resp.text)
                    logger.info('ALL SUCCESS')

                    time.sleep(PLACEORDERINTERVAL)
                else:
                    raise Exception('order place faild')
            else:
                raise Exception(u'已经3次预定')
        except requests.exceptions.ConnectionError, e:
            print 'adsl faild'
            print traceback.format_exc()
            adsl_service.reconnect()
Exemplo n.º 13
0
            file_object.close()

        os.rename(
            account_txt,
            os.path.normpath(
                os.path.join(root_path,
                             'account/' + str(int(time.time())) + '.txt')))
        for account in accounts:
            try:
                ac = account.split(',')
                username = ac[0]
                password = ac[1]

                logger.info('uname:%s,pwd:%s,login...' % (username, password))
                uuid = base_data.get_random_number(
                ) + '-' + base_data.get_random_letter_number(12).lower()
                user_agent = base_data.get_user_agent()

                login = http_handler.login.Login(username, password, uuid,
                                                 user_agent)
                cookie = login.get_cookie()
                logger.info('login success,cookie:%s' % cookie)

                h5_cookie = login.get_h5_cookie(cookie)
                logger.info('get h5 cookie:%s' % h5_cookie)

                cookie = 'pt_key=%s;pwdt_id=%s;sid=%s;guid=%s;pt_pin=%s;mobilev=%s' % (
                    h5_cookie['pt_key'], h5_cookie['pwdt_id'],
                    h5_cookie['sid'], h5_cookie['guid'], h5_cookie['pt_pin'],
                    h5_cookie['mobilev'])
Exemplo n.º 14
0
    def place_order(self, data, partner_order_id, coupons):
        if coupons:
            if not self.__lookup_coupon(data):
                for id in coupons:
                    self.get_coupon(id)
                self.__lookup_coupon(data)

        logger.info('READY:%s' % data)
        resp = http_handler.train_order.add_order(self.account['sessionid'],
                                                  self.partner, self.cc, data)
        logger.debug('add order response:%s' % resp)

        if resp['success']:
            termId = str(uuid.uuid1())
            pay_data = {
                'bizOrderId': resp['data']['orderId'],
                'price': data['price']
            }
            logger.info('add order success.id:%s.submiting...' %
                        pay_data['bizOrderId'])

            resp = http_handler.pay.submit({
                'userId':
                self.account['userid'],
                'orderId':
                pay_data['bizOrderId'],
                'price':
                pay_data['price'],
                'sessionId':
                self.account['sessionid'],
                'termId':
                termId
            })

            logger.debug('order submit response:%s' % resp)
            if resp['success']:
                pay_data['partner_order_id'] = partner_order_id
                pay_data['tuniu_orderId'] = resp['data']['orderId']
                pay_data['price'] = resp['data']['remainAmount']
                pay_data['account'] = self.account
                pay_data['timeout'] = str(datetime.datetime.now() +
                                          datetime.timedelta(minutes=25))
                cookie = 'PageSwitch=2,%s; _tacau=MCwzYTY0MTU4Ni1mZDI3LTQyMWUtZDI3NS1kNGI1ZDEzNDU1ODcs; _tacz2=taccsr=(direct)|tacccn=(none)|taccmd=(none)|taccct=(none)|taccrt=(none); _taca=1477397184786.1477397184786.1477397184786.1; _tacc=1; SERVERID=dnionD; app_imei=%s; ov=1; tuniuuser_id=%d;  TUNIUmuser=%s; sessionId=MQ==; token=%s; appVersion=9.0.0; tuniu_partner=MTU0NDcsMCwsOWIxMTFkNWY3NGQ1NmQ1NjdhNjEyZDQzYjEzYjVlYjI=; deviceType=1; SsoSession=%s; clientType=20; page_flag=; __utma=1.1665134217.1477397186.1477397186.1477397188.2; __utmb=1.4.10.1477397188; __utmc=1; __utmz=1.1477397188.2.2.utmcsr=morecoupon|utmccn=(not set)|utmcmd=couponcenter; _tact=NTExZDJiZTYtNGUxOS05Y2E2LWJlNjEtMTM0ZDMwYmMwNDRh;' % (
                    str(time.time()).replace(
                        '.', ''), base_data.get_random_number(),
                    self.account['userid'], self.account['sessionid'],
                    base64.b64encode(base_data.get_random_letter_number()),
                    self.account['sessionid'])

                logger.info(
                    'order submit success,payid:%s,price:%s,confirming...' %
                    (pay_data['tuniu_orderId'], pay_data['price']))

                # --回调优惠券金额
                headers = {
                    'content-type': 'application/json; charset=UTF-8',
                    'User-Agent':
                    'TuNiuApp/9.0.6/Dalvik/1.6.0 (Linux; U; Android 4.2.2)',
                    'cookie': cookie
                }
                req = requests.get(
                    'http://m.tuniu.com/userOrder/trainTicketOrderDetailAjax?data=%7B%22orderId%22%3A%22'
                    + str(pay_data['bizOrderId']) +
                    '%22%2C%22orderType%22%3A%2238%22%7D',
                    headers=headers)
                resp = req.json()
                logger.debug('get order deails response:%s' % resp)
                logger.info('callback promotionPrice')
                if resp['success']:
                    req = requests.get(
                        'http://op.yikao666.cn/JDTrainOpen/CallBackForTN?'
                        'order_id=%s&success=true&amount=%s&coupon_price=%s' %
                        (pay_data['partner_order_id'], pay_data['price'],
                         resp['data']['promotionPrice']))
                    logger.info('callback promotionPrice:%s' % req.text)
                else:
                    logger.error('get order details faild')
                # 回调优惠券金额--

                if base_data.payChannel == 8:
                    pay_data['cookie'] = cookie
                    return pay_data
                else:
                    resp = http_handler.pay.confirm({
                        'userId':
                        self.account['userid'],
                        'orderId':
                        pay_data['tuniu_orderId'],
                        'price':
                        pay_data['price'],
                        'sessionId':
                        self.account['sessionid'],
                        'termId':
                        termId
                    })
                    logger.debug('order confirm response:%s' % resp)

                    if resp['success']:
                        pay_data['finalOrderId'] = resp['data']['finalOrderId']
                        pay_data['url'] = resp['data']['url']
                        logger.info(
                            'order confirm success.alipay url:%s\nupload data'
                            % pay_data['url'])

                        return pay_data
                    else:
                        err = 'order confirm faild'
                        logger.error(err)
                        raise ValueError(err)

            else:
                err = 'order submit faild'
                logger.error(err)
                raise ValueError(err)

        else:
            err = 'add order faild'
            logger.error(err)
            raise ValueError(err)
Exemplo n.º 15
0
    def test_get_wx_payinfo2(self):
        cookie = 'pin=jd_4c25331e9e318; wskey=AAFZFCJnAEApyqAxlSJkcJq5PpfyEQJP3AzScHZMPYnJil_OUyj_Nplm6EMUtplSPLrmze_4_A_dnePgOgpA3ZPb-PcAOnPL; whwswswws='
        h5_cookie = {
            'mobilev': 'touch',
            'pt_key':
            'app_openAAFZFCJrADDn-sSej1_DxCnX2huF62fiLmAr7HLgBgj8Of4jJFwXgzpPRI0qQOQfNsvRNQ0b95k',
            'pwdt_id': 'jd_4c25331e9e318',
            'sid': 'f4686d600dab33e26b0427afa298f5cw',
            'guid':
            '2bc17003cc1916830d40e7d84c4d6523ae691c8936569e8cdac7479c22e02b07',
            'pt_pin': 'jd_4c25331e9e318'
        }

        session = requests.session()
        resp = requests.get(
            'https://train.m.jd.com/pay/goToPay?orderId=53087782937&trainOrderId=5751638&onlinePayFee=19.50',
            headers={
                'Charset': 'UTF-8',
                'Connection': 'close',
                'Cookie':
                'mobilev=touch,pt_key=app_openAAFZFCJrADDn-sSej1_DxCnX2huF62fiLmAr7HLgBgj8Of4jJFwXgzpPRI0qQOQfNsvRNQ0b95k,pwdt_id=jd_4c25331e9e318,sid=f4686d600dab33e26b0427afa298f5cw,guid=2bc17003cc1916830d40e7d84c4d6523ae691c8936569e8cdac7479c22e02b07,pt_pin=jd_4c25331e9e318',
                'User-Agent':
                'jdapp;android;6.0.0;4.4.2;863175026618021-a8a6681e316b;network/wifi;osp/android;apv/6.0.0;osv/4.4.2;uid/863175026618021-a8a6681e316b;pv/210.81;psn/863175026618021-a8a6681e316b|211;psq/25;ref/;pap/JA2015_311210|6.0.0|ANDROID 4.4.2;usc/direct;ucp/-;umd/none;utr/-;adk/;ads/;jdv/;Mozilla/5.0 (Linux; Android 4.4.2; NX507J Build/KVT49L; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043124 Safari/537.36',
                'Content-Type':
                'application/x-www-form-urlencoded; charset=UTF-8'
            },
            verify=False)  # ,allow_redirects=False
        pay_url = resp.url
        query = pay_url[pay_url.index('?') + 1:].split('&')
        payload = {}
        for q in query:
            q = q.split('=')
            payload[q[0]] = q[1]

        payload['appId'] = 'jd_android_app4'
        # payload['payId']='4d5f1ae1294a40f3aa4fa1d749e8d1a7'
        # print pay_url,query,payload

        headers = {
            'Connection':
            'keep-alive',
            'Pragma':
            'no-cache',
            'Cache-Control':
            'no-cache',
            'Accept':
            '*/*',
            'Origin':
            'https://pay.m.jd.com',
            'X-Requested-With':
            'XMLHttpRequest',
            'User-Agent':
            'jdapp;android;6.0.0;6.0;861012032753710-f823b2dbaddc;network/wifi;osp/android;apv/6.0.0;osv/6.0;uid/861012032753710-f823b2dbaddc;pv/1.45;psn/861012032753710-f823b2dbaddc|3;psq/6;ref/;pap/JA2015_311210|6.0.0|ANDROID 6.0;usc/direct;ucp/-;umd/none;utr/-;adk/;ads/;jdv/;hasUPPay/0;Mozilla/5.0 (Linux; Android 6.0; CAM-AL00 Build/HONORCAM-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043220 Safari/537.36',
            'Content-Type':
            'application/x-www-form-urlencoded',
            'Referer':
            'https://pay.m.jd.com/cpay/index.html?appId=jd_android_app4&payId='
            + payload['payId'],
            'Accept-Encoding':
            'gzip, deflate',
            'Accept-Language':
            'zh-CN,en-US;q=0.8',
            'Cookie':
            cookie
        }
        resp = requests.post('https://pay.m.jd.com/newpay/index.action',
                             data='appId=jd_android_app4&payId=' +
                             payload['payId'] + '&_format_=JSON',
                             headers=headers)
        print resp.text

        uuid = base_data.get_random_number(
        ) + '-' + base_data.get_random_letter_number(12).lower()
        headers = {
            'Accept-Encoding':
            'gzip,deflate',
            'Cookie':
            cookie,
            'Charset':
            'UTF-8',
            'Content-Type':
            'application/x-www-form-urlencoded',
            'User-Agent':
            'Dalvik/1.6.0 (Linux; U; Android 4.2.2; GT-P5210 Build/JDQ39E)'
        }
        print json.dumps(payload)
        sign = auth.sign('weixinPay', uuid, json.dumps(payload))
        resp = requests.post(
            url=
            'https://pay.m.jd.com/index.action?functionId=weixinPay&clientVersion=5.8.0&build=42523&client=android&d_brand=Xiaomi&d_model=Mi4&osVersion=4.2.2&screen=1440*810&partner=goapk001&uuid=%s&area=19_1709_20093_0&networkType=wifi&st=%s&sign=%s&sv=122'
            % (
                # url = 'http://api.m.jd.com/client.action?functionId=configCouponList&clientVersion=5.8.0&build=42523&client=android&d_brand=&d_model=&osVersion=&screen=1280*720&partner=tencent&uuid=%s&area=1_2802_0_0&networkType=wifi&st=%s&sign=%s&sv=122' % (
                uuid,
                sign[1],
                sign[0]),
            data='body=%7B%22payId%22%3A%22' + payload['payId'] +
            '%22%2C%22appId%22%3A%22jd_android_app4%22%7D&',
            # 'body=' + urllib.quote(json.dumps(payload))+ '&',
            headers=headers)
        print resp.text
Exemplo n.º 16
0
    def test_get_wx_payinfo(self):
        cookie = 'pin=jd_417181296b3ba; wskey=AAFZCEPFAECu4cCwW_BItToNjJMdjva2TkDa-NfZ8lXY9Tc71Ez8teFvoHKgIPYis4xLutBE8792x58wEkTcT2zhMnEVSR-w; whwswswws='
        h5_cookie = {
            'mobilev': 'touch',
            'pt_key':
            'app_openAAFZCEPFADC0pTiZdMxn3QlFk3jh8Pr60qhjMOO07np7zyLdJmKX1QuNA6sF-SWkKULi6p35kk8',
            'pwdt_id': 'jd_417181296b3ba',
            'sid': '07713da596d5a6c7c0aaa19ebfff3b7w',
            'guid':
            '5b317f5a3d5b7af09d4ba69b901966e066bfd06b1b35a64e5b95ad5d264e41aa',
            'pt_pin': 'jd_417181296b3ba'
        }

        resp = requests.get(
            'https://train.m.jd.com/pay/goToPay?orderId=51990280826&trainOrderId=5567188&onlinePayFee=18.5',
            headers={
                'Charset': 'UTF-8',
                'Connection': 'close',
                'Cookie':
                'mobilev=touch,pt_key=app_openAAFZCEPFADC0pTiZdMxn3QlFk3jh8Pr60qhjMOO07np7zyLdJmKX1QuNA6sF-SWkKULi6p35kk8,pwdt_id=jd_417181296b3ba,sid=07713da596d5a6c7c0aaa19ebfff3b7w,guid=5b317f5a3d5b7af09d4ba69b901966e066bfd06b1b35a64e5b95ad5d264e41aa,pt_pin=jd_417181296b3ba',
                'Upgrade-Insecure-Requests:': '1',
                'User-Agent':
                'JD4iPhone/134623 (iPhone; iOS 8.1.3; Scale/2.00)',
                'Content-Type':
                'application/x-www-form-urlencoded; charset=UTF-8'
            },
            verify=False)  # ,allow_redirects=False
        pay_url = resp.url
        query = pay_url[pay_url.index('?') + 1:].split('&')
        payload = {}
        for q in query:
            q = q.split('=')
            payload[q[0]] = q[1]
        print pay_url, query, payload

        uuid = base_data.get_random_number(
        ) + '-' + base_data.get_random_letter_number(12).lower()
        headers = {
            'Accept-Encoding': 'gzip,deflate',
            'jdc-backup': cookie,
            'Cookie': cookie,
            'Charset': 'UTF-8',
            'Connection': 'Keep-Alive',
            'Cache-Control': 'no-cache',
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'User-Agent': 'JD4iPhone/134623 (iPhone; iOS 8.1.3; Scale/2.00)'
        }
        # payload['appId']='jd_iphone_app4'
        print json.dumps(payload)
        sign = auth.sign('weixinPay', uuid, json.dumps(payload))

        resp = requests.post(
            url=
            'http://api.m.jd.com/client.action?functionId=weixinPay&clientVersion=5.8.0&build=42523&client=android&d_brand=nubia&d_model=NX507J&osVersion=4.4.2&screen=1920*1080&partner=jingdong2&uuid=%s&area=1_2802_2821_0&networkType=wifi&st=%s&sign=%s&sv=111'
            % (
                # url = 'http://api.m.jd.com/client.action?functionId=configCouponList&clientVersion=5.8.0&build=42523&client=android&d_brand=&d_model=&osVersion=&screen=1280*720&partner=tencent&uuid=%s&area=1_2802_0_0&networkType=wifi&st=%s&sign=%s&sv=122' % (
                uuid,
                sign[1],
                sign[0]),
            data='body=' + urllib.quote(json.dumps(payload)) + '&',
            headers=headers)
        # resp = requests.post(
        #     url='http://pay.m.jd.com/index.action?functionId=weixinPay',
        #     data='body=' + urllib.quote(json.dumps(payload)) + 'adid=9A72E17A-8D8C-4877-A781-35CEBB8C6E38&area=19_1607_3155_0&build=134623&client=apple&clientVersion=5.8.0&d_brand=apple&d_model=iPhone7%2C2&isBackground=N&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=dc8015f619f669cf0008bc9ea2e98f5908eec7c9&osVersion=8.1.3&partner=pp601&screen=750%2A1334&'+'uuid=%s&st=%s&sign=%s&sv=100'% (
        #         # url = 'http://api.m.jd.com/client.action?functionId=configCouponList&clientVersion=5.8.0&build=42523&client=android&d_brand=&d_model=&osVersion=&screen=1280*720&partner=tencent&uuid=%s&area=1_2802_0_0&networkType=wifi&st=%s&sign=%s&sv=122' % (
        #         uuid, sign[1], sign[0]),
        #     headers=headers)
        print resp.json()
Exemplo n.º 17
0
def place_order():
    while True:
        partner_order_id = ''

        try:
            currentHour = int(time.strftime('%H', time.localtime(time.time())))
            if currentHour > 22 or currentHour < 7:
                print 'sleep a hour'
                time.sleep(3600)
                continue

            logger.info('--------------------------')
            logger.info('get jingdong train data')
            try:
                resp = requests.get(
                    'http://op.yikao666.cn/JDTrainOpen/getTaskForJD?order_src=app'
                )
                train = resp.json()
                partner_order_id = train['order_id']
                logger.debug(json.dumps(train))
            except Exception, e:
                if resp:
                    print resp.text
                print 'get jingdong train data faild'
                time.sleep(5)
                continue

            train = json.loads(train['data'])
            username = train['data']['exData2']['user'].encode('utf-8')
            password = train['data']['exData2']['pwd']
            logger.info('get orderid:%s,username:%s,password:%s,logon...' %
                        (partner_order_id, username, password))

            uuid = base_data.get_random_number(
            ) + '-' + base_data.get_random_letter_number(12).lower()
            user_agent = base_data.get_user_agent()

            # while True:
            #     adsl_service.reconnect()
            #     return1 = os.system('ping baidu.com')
            #     if return1:
            #         continue
            #     else:
            #         break

            login = http_handler.login.Login(username, password, uuid,
                                             user_agent)
            cookie = login.get_cookie()
            logger.info('login success,cookie:%s' % cookie)

            h5_cookie = login.get_h5_cookie(cookie)
            logger.info('get h5 cookie:%s' % h5_cookie)

            couponid = ''
            couponPrice = ''
            if train['data']['exData2'].has_key('couponid'):
                couponid = train['data']['exData2']['couponid']
                logger.info('get couponid %s' % couponid)
            if train['data']['exData2'].has_key('couponPrice'):
                couponPrice = train['data']['exData2']['couponPrice']
                logger.info('get couponPrice %s' % couponPrice)

            if couponid:
                logger.info('find out couponid')
                if not login.get_couponList(cookie, couponid):
                    logger.info('faild')
                    raise Exception(u'没有找到优惠卷,%s' % couponid)

            order = http_handler.order.Order(uuid, user_agent, h5_cookie)
            passengers = train['data']['passengersInfo']
            logger.info('add passenger %s' % json.dumps(passengers))
            passenger_ids = ','.join(order.add_passenger(passengers))
            logger.info('add passenger success.ids:%s.' % passenger_ids)

            order_data = order.gen_order(train, passenger_ids)
            logger.info('order generate success,id:%s.get token...' %
                        order_data['orderid'])

            order_data = order.get_token(order_data)
            logger.info('order token success,%s' % order_data['token'])

            if not (couponid and couponPrice):
                order_data[
                    'coupon'] = '&isGrab=false&payTypes=&couponIds=&couponFee=0'
            else:
                order_data[
                    'coupon'] = '&payTypes=allDCoupon&couponIds=%s&couponFee=%s' % (
                        str(couponid), str(int(float(couponPrice) * 100)))
                # order_data['couponid'] = couponid
                # order_data['couponPrice'] = int(float(couponPrice) * 100)

            logger.info('submit:%s' % json.dumps(order_data))
            if order.submit(order_data):
                logger.info('get order details')
                order_details = order.get_details(order_data['orderid'])
                if order_details:
                    logger.info('get pc cookie')
                    pc_cookie = ''
                    try:
                        resp = requests.get(
                            'http://115.29.79.63:9000/api/Cookie/Get?username=%s&password=%s'
                            % (username, password),
                            timeout=10)
                        data = resp.json()
                        if data['Status']:
                            pc_cookie = data['Cookie']
                        else:
                            logger.error(data['Message'])
                    except requests.exceptions.ReadTimeout:
                        logger.error('timeout')
                    except Exception, e:
                        logger.error(e.message)

                    logger.info('erpOrderId %s,callback start...' %
                                order_details['erpOrderId'])
                    resp = requests.get(
                        'http://op.yikao666.cn/JDTrainOpen/CallBackForMJD?order_id=%s&jdorder_id=%s&success=true&order_no=%s&amount=%s&order_src=app&checi=%s&seatTyp=%s&cookie=%s'
                        % (partner_order_id, order_details['erpOrderId'],
                           order_data['orderid'],
                           order_details['onlinePayFee'], order_data['cheCi'],
                           order_data['seatType'], pc_cookie))
                    logger.info(resp.text)
                    # logger.info('get pc cookie')

                    logger.info('ALL SUCCESS')
                    time.sleep(PLACEORDERINTERVAL)
                else:
                    raise Exception('order place faild')
            else:
                raise Exception('submit maybe faild')
Exemplo n.º 18
0
def sync_status_from_jd():
    pool = redis.ConnectionPool(host='139.199.65.115', port=6379, db=0, password='******')
    r = redis.Redis(connection_pool=pool)
    while True:
        retry = 0
        try:
            print 'redis brpop'
            result = r.brpop('order_platform:phone_charge:order_pay_success', 5)
            if result:
                resp = result[1]
                logger.info('get order:%s' % resp, program='sync_status_from_jd')

                # resp = requests.get(base_data.ORDER_API_GET + id)
                # resp = resp.json()
                if (resp):
                    order = json.loads(resp)
                    order_sync_jd_status_time = str(datetime.datetime.now())
                    cookie = order['account']['cookie']
                    logger.info('get status', order['trade_no'], 'sync_status_from_jd')
                    uuid = base_data.get_random_number() + '-' + base_data.get_random_letter_number(12).lower()
                    headers = {
                        'Charset': 'UTF-8',
                        'jdc-backup': cookie,
                        'Connection': 'close',
                        'Cookie': cookie,
                        'User-Agent': 'okhttp/3.2.0',
                        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
                    body = {"orderId": order['jd_order_id']}
                    sign = auth.sign('queryPczOrderInfo', uuid, json.dumps(body))
                    url = 'http://api.m.jd.com/client.action?functionId=queryPczOrderInfo&clientVersion=5.8.0&build=42523&client=android&screen=1920*1080&partner=waps007&uuid=%s&area=1_0_0_0&networkType=wifi&st=%s&sign=%s&sv=122' % (
                        uuid, sign[1], sign[0])
                    body = 'body=' + urllib.quote_plus(json.dumps(body)) + '&'
                    while True:
                        resp = requests.post(url, data=body, headers=headers)
                        ret = resp.json()
                        logger.debug('get jd response:%s' % resp.text, order['trade_no'], 'sync_status_from_jd')
                        # print ret
                        jd_order_status = ret['rechargeOrder']['orderStatusName']
                        logger.info(jd_order_status, order['trade_no'], 'sync_status_from_jd')
                        if jd_order_status == u'充值成功':
                            logger.info('send to queue order_platform:phone_charge:order_success', order['trade_no'],
                                        'sync_status_from_jd')
                            order['order_sync_jd_status_time'] = order_sync_jd_status_time
                            r.lpush('order_platform:phone_charge:order_success', json.dumps(order))
                            break
                        elif jd_order_status == u'等待付款' or u'充值失败' in jd_order_status:
                            logger.info(
                                'lpush %s to queue order_platform:phone_charge:order_faild' % order['trade_no'],
                                order['trade_no'], 'sync_status_from_jd')
                            r.lpush('order_platform:phone_charge:order_faild', json.dumps(
                                {'trade_no': order['trade_no'], 'order_faild_time': order_sync_jd_status_time}))
                            break
                        else:
                            pay_callback_time = int(
                                time.mktime(time.strptime(order['pay_callback_time'], '%Y-%m-%d %H:%M:%S')))
                            t = int(time.time())
                            if t - pay_callback_time < 15 * 60:
                                retry += 1
                                if retry < 2:
                                    time.sleep(5)
                                    # time.sleep(2)
                                    continue
                                else:
                                    logger.info(
                                        'timeout,lpush %s  to queue order_platform:phone_charge:order_pay_success' %
                                        order['trade_no'], order['trade_no'], 'sync_status_from_jd')
                                    r.lpush('order_platform:phone_charge:order_pay_success', order['trade_no'])
                                    break
                            else:
                                logger.info('charge timeout and need customer service verifies,set status',
                                            order['trade_no'], 'sync_status_from_jd')
                                resp = requests.post(base_data.ORDER_SETSTATUS_API_POST,
                                                     data={'order_id': order['trade_no'], 'status': '超时待人工核实'})
                                logger.info(resp.text, order['trade_no'], 'sync_status_from_jd')
                                break
                else:
                    logger.error('cant find order %s' % id, program='sync_status_from_jd')
            else:
                continue
        except Exception, e:
            logger.error(e.message, program='sync_status_from_jd')
            time.sleep(5)
            continue
Exemplo n.º 19
0
def phone_charge():
    pool = redis.ConnectionPool(host='139.199.65.115', port=6379, db=0, password='******')
    r = redis.Redis(connection_pool=pool)
    while True:
        order_id = 0
        success = 0

        try:
            print 'redis brpop'
            result = r.brpop('order_platform:phone_charge:order', 5)
            if result:
                trade_no = result[1]
                logger.info('get trade no:%s' % trade_no)
                data = r.hgetall('order_platform:phone_charge:trade_no:%s' % trade_no)
                logger.info('get trade data:%s' % data)
                data['partner'] = json.loads(data['partner'])

                if not data:  # trade data loss
                    save_order({'trade_no': trade_no, 'status': u'数据丢失'})
                    logger.error('trade_no %s data loss' % trade_no)
                    continue
            else:
                continue
        except Exception, e:
            logger.error(e.message)
            time.sleep(5)
            continue

        data['order_handler_time'] = str(datetime.datetime.now())
        data['status'] = '正在下单'
        data['partner_price'] = ''
        data['callback_status'] = ''
        if data.has_key('order_id'):
            order_id = data['order_id']
        else:
            order_id = save_order(data)

        uuid = base_data.get_random_number() + '-' + base_data.get_random_letter_number(12).lower()
        # data = {'mobile':'15763563256','parterner_id':'123654','amount':100,callback:''}
        mobile = des_encryption(data['mobile'])
        account = get_account(uuid)

        if not account:
            r.set('order_platform:switch:order_accpet', 0)
            data['status'] = '下单失败'
            data['err'] = '账号不足'
            callback_partner_and_save_order(data, 0, order_id)
            continue

        data['account'] = account
        pc_cookie = account['pc_cookie']
        try:
            headers = {
                'Charset': 'UTF-8',
                'jdc-backup': account['cookie'],
                'Connection': 'close',
                'Cookie': account['cookie'],
                'User-Agent': 'Dalvik/1.6.0 (Linux; U; Android 4.4.2; Nexus Build/KOT49H)',
                'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
            body = {"mobile": mobile}
            sign = auth.sign('searchPczPriceList', uuid, json.dumps(body))
            url = 'http://api.m.jd.com/client.action?functionId=searchPczPriceList&clientVersion=5.8.0&build=42523&client=android&d_brand=nubia&screen=1920*1080&partner=waps007&uuid=%s&area=1_0_0_0&networkType=wifi&st=%s&sign=%s&sv=122' % (
                uuid, sign[1], sign[0])

            logger.info('get jd price')
            resp = requests.post(url, data='body=' + urllib.quote_plus(json.dumps(body)) + '&', headers=headers)
            resp = resp.json()
            data['providerName'] = resp['providerName']
            data['areaName'] = resp['areaName']

            data['partner_price'] = data['partner']['price'][resp['providerName']]
            # if data['providerName'] == u'移动':
            #     data['partner_price'] = 98
            # elif data['providerName'] == u'联通':
            #     data['partner_price'] = 98
            # else:
            #     data['partner_price'] = 97

            sku = filter(lambda s: s['facePrice'] == str(data['amount']), resp['skuList'])
            if len(sku) == 0:
                data['status'] = '数据丢失'
                callback_partner_and_save_order(data, 0, order_id)
                continue

            logger.info('get compon')
            sign = auth.sign('queryPczFavourableInfo', uuid, json.dumps(body))
            url = 'http://api.m.jd.com/client.action?functionId=queryPczFavourableInfo&clientVersion=5.8.0&build=42523&client=android&d_brand=nubia&screen=1920*1080&partner=waps007&uuid=%s&area=1_0_0_0&networkType=wifi&st=%s&sign=%s&sv=122' % (
                uuid, sign[1], sign[0])

            resp = requests.post(url, data='body=' + urllib.quote_plus(json.dumps(body)) + '&', headers=headers)
            resp = resp.json()
            logger.debug(resp)
            if len(resp['dxqInfos']) > 0:
                data['discount'] = resp['dxqInfos'][0]['discount']  # 优惠金额
                data['dxqids'] = resp['dxqInfos'][0]['id']
            else:
                data['status'] = '没有优惠券'
                while True:
                    try:
                        logger.error('account compon not found,send to server')
                        account['valid_message'] = '没有优惠券'
                        account['valid'] = 0
                        resp = requests.post(base_data.JD_ACCOUNT_API_POST, json=account)
                        logger.info('resp:%s' % resp.text)
                        if resp.text == '1':
                            logger.info('success')
                            break
                        else:
                            time.sleep(60)
                            continue
                    except Exception, e:
                        time.sleep(60)
                        continue

                callback_partner_and_save_order(data, 0, order_id)
                continue

            data['jd_price'] = float(sku[0]['jdPrice']) / 100 - data['discount']
            body = {"dxqids": data['dxqids'], "facePrice": data['amount'], "isBingding": "0", "isNote": "0",
                    "jdPrice": str(data['jd_price']),
                    "payType": "10", "type": "1", "contact": "false", "mobile": mobile}

            # data['jd_price'] = float(sku[0]['jdPrice']) / 100
            # # "dxqids": "7929697981",
            # body = {"facePrice": data['amount'], "isBingding": "0", "isNote": "0",
            #         "jdPrice": str(data['jd_price']),
            #         "payType": "0", "type": "1", "contact": "false", "mobile": mobile}
            sign = auth.sign('submitPczOrder', uuid, json.dumps(body))
            url = 'http://api.m.jd.com/client.action?functionId=submitPczOrder&client=android&clientVersion=5.8.0&build=42523&osVersion=4.4.2&screen=1280*720&partner=tencent&uuid=%s&area=1_0_0_0&networkType=wifi&st=%s&sign=%s&sv=122' % (
                uuid, sign[1], sign[0])
            body = 'body=' + urllib.quote_plus(json.dumps(body)) + '&'
            logger.debug('POST %s\n%s' % (url, body))
            resp = requests.post(url, data=body, headers=headers)
            ret = resp.json()
            logger.debug(resp.text)
            if ret.has_key('orderId'):
                data['jd_order_id'] = ret['orderId']
                data['money'] = ret['money']
                data['status'] = u'下单成功'
                success = 1
                logger.info('%s charge success,callback' % data['mobile'])
            else:
                data['status'] = u'下单失败'
                logger.error('%s charge faild\n%s' % (data['mobile'], traceback.format_exc()))
Exemplo n.º 20
0
 def sign_test(self):
     sign_data = auth.sign(
         'newUserInfo',
         base_data.get_random_number() + '-' +
         base_data.get_random_letter_number(12), '{"flag":"nickname"}')
     print sign_data