Пример #1
0
def config():
    print '********************************'
    ticket = token_mngr.get_ticket()
    print ticket
    print 'token' + token_mngr.get_token()
    sign = Sign(ticket, request.form['url'])
    return make_response(jsonify(sign.sign()), 200)
Пример #2
0
    def get(self):
        '''
        the import handle
        '''
        try:
            webData = self.request.body
            #print "WxShowHandler Get webdata is ", webData
            log.info("WxShowHandler Get webdata is %s" % (webData))

            id = self.get_argument('id', '')
            showidstr = self.get_argument('showid', '')
            if len(id) == 0 or len(showidstr) == 0:
                self.write('parameter error!')

            # get sign ticket for weixin jsapisdk
            ticket = DataCenter().get_jsapi_ticket()
            urlall = self.request.uri
            #print self.request.path        /wx/show
            #print self.request.uri         /wx/show?id=oLN9QxI-YpdNJkSIXQkppJDHuvZM&showid=15
            sign = Sign(ticket, test_urlhead + urlall)
            sign_data = sign.sign()
            #print 'weixin_JSAPI_ticket: '
            #print sign_data
            log.info('weixin_JSAPI_ticket: %s'%(sign_data))
            timestamp = sign_data['timestamp']
            nonceStr = sign_data['nonceStr']
            signature = sign_data['signature']

            # get_param id
            showid = long(showidstr)
            userdata = DataCenter().get_data_by_id(showid)
            if len(userdata) == 0:
                self.write("no data")
                return
            data_dict = userdata[0]
            #print data_dict
            log.debug(data_dict)

            title_info = data_dict['title']
            sub_info = data_dict['aidata'].split(test_split_str)
            all_info = data_dict['originaldata'].split(test_split_str)
            createtime = data_dict['createtime'].strftime('%Y-%m-%d %H:%M:%S')

            author = ''
            authorinfo = data_dict['author']
            datasource = data_dict['datasource']
            _userid = data_dict['userid']
            if authorinfo == '':
                author = datasource
            elif datasource == '':
                author = authorinfo
            else :
                author = authorinfo + ' | ' + datasource

            self.render("index.html", title=title_info, allinfo=all_info, subjects=sub_info, author=author, \
                    createtime=createtime, appid=test_weixin_appid, timestamp=timestamp, nonceStr=nonceStr, \
                    userid=_userid, signature=signature)
        except Exception, Argument:
            log.error(Argument)
            self.write(Argument)
Пример #3
0
 def get(self):
     ticket = DataCenter().get_jsapi_ticket()
     sign = Sign(ticket, 'http://www.test.com/wx/getjsapiticket')
     sign_str =  sign.sign()
     #print 'weixin_JSAPI_ticket: '
     #print sign_str
     log.info('weixin_JSAPI_ticket: %s'%(sign_str))
     self.write(sign_str)
Пример #4
0
def testjs(request):
    c = {}
    wechat = WechatBasic(token=WEIXIN_TOKEN, appid=APPID, appsecret=APPSECRET)
    ticket = getJsApiTicket(wechat)
    sign = Sign(ticket,
                "http://" + request.get_host() + request.get_full_path())
    c['sign'] = sign.sign()
    c['appid'] = APPID
    return render_to_response("weixin/testjs.html",
                              c,
                              context_instance=RequestContext(request))
Пример #5
0
def get_wx_config():
    url = request.form.get('url')

    cgi_bin_access_token = redis.get('cgi_bin_access_token')
    jsapi_ticket = redis.get('jsapi_ticket')
    print('------>', cgi_bin_access_token, jsapi_ticket)

    if cgi_bin_access_token is None or jsapi_ticket is None:
        # 第一步:获取 “普通access_token”
        source_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={APPID}&secret={APPSECRET}'
        cgi_bin_url = source_url.format(APPID=config.APPID,
                                        APPSECRET=config.APPSECRET)
        resp = requests.get(cgi_bin_url)  # 请求api
        data = eval(resp.text)  # 将字符串转为字典
        print(data)
        cgi_bin_access_token = data['access_token']
        redis.set('cgi_bin_access_token',
                  cgi_bin_access_token,
                  ex=data['expires_in'])

        # 第二步:获取 jsapi_ticket
        source_url = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={ACCESS_TOKEN}&type=jsapi'
        ticket_url = source_url.format(ACCESS_TOKEN=cgi_bin_access_token)
        resp = requests.get(ticket_url)  # 请求api
        data = eval(resp.text)  # 将字符串转为字典
        print(data)
        jsapi_ticket = data['ticket']
        redis.set('jsapi_ticket', jsapi_ticket, ex=data['expires_in'])

    # 第三步:签名算法
    # noncestr=Wm3WZYTPz0wzccnW
    # jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg
    # timestamp=1414587457
    # url=http://mp.weixin.qq.com?params=value
    sign = Sign(jsapi_ticket, url)
    ret = sign.sign()
    return jsonify({
        'status_code': config.SUCCESS,
        'msg': 'success',
        'data': {
            'appId': config.APPID,
            'timestamp': ret['timestamp'],
            'nonceStr': ret['nonceStr'],
            'signature': ret['signature'],
        }
    })
Пример #6
0
    def get(self):
        '''
        lst = ["python","www.itdiffer.com","*****@*****.**"]
        self.render("index.html", info=lst)
        '''
        # get userid by id
        body = self.request.body
        print "============>>>>>>>>>>>>>>>>>>>>start"
        print body
        print "============>>>>>>>>>>>>>>>>>>>>end."
        res = DataCenter().get_data_by_id(int(body['id']))
        _userid = res[0]['userid']
        # get sign ticket for weixin jsapisdk
        ticket = DataCenter().get_jsapi_ticket()
        urlall = self.request.uri
        #print self.request.path        /wx/show
        #print self.request.uri         /wx/show?id=oLN9QxI-YpdNJkSIXQkppJDHuvZM&showid=15
        sign = Sign(ticket, test_urlhead + urlall)
        sign_data = sign.sign()
        #print 'weixin_JSAPI_ticket: '
        #print sign_data
        log.info('weixin_JSAPI_ticket: %s'%(sign_data))
        timestamp = sign_data['timestamp']
        nonceStr = sign_data['nonceStr']
        signature = sign_data['signature']

        # get_param id
        title_info = '标题:人工智能的未来在哪里'
        all_info = ["先看一下这个情况,中国出口到全球,其中英国占中国出口的3%左右,但是退欧之后,我们看到整个的英镑是狂跌。",
                "另外大家现在寻求一个避险的港湾,避险的港湾在哪里呢?美元是第一,其次是日元,然后是黄金,最后就是美国的国债,其他一些资产有很大风险性。",
                "不过很多分析是有错误的,这么多专家、这么多经济学家、这么多非常能干的交易员,他们的分析判断在这个事件发生之前是不靠谱的。",
                "所以如果人工智能在未来的15年能帮助人类分析、判断,规避风险,我觉得这会是一个突破。",
                "我在美国的硕士学位就是和机器人有关的,我们学的是简单的控制,是你控制一个机器手,或者机器做的事情,和现在谈的人工智能概念差别还是很大的。",
                "另外一方面,我们现在看的人工智能,有人尖叫,有人担忧。其实还不到这个程度,因为我们现在看到的人工智能,无论是AlphaGo还是其他的人工智能,我觉得还是属于第一智能的状态。",
                "文章全文到此结束"]
        sub_info = ["主题1:人工智能的新时代即将到来",
                "主题2:人工智能到底能做什么",
                "主题3:人工智能的道路还很漫长"]
        self.render("index.html", title=title_info, allinfo=all_info, subjects=sub_info, author="", \
                createtime="2017-03-01 00:00:00", appid=test_weixin_appid, timestamp=timestamp, nonceStr=nonceStr, signature=signature, userid=_userid)
Пример #7
0
    def GET(self):
        # guard code, back step
        if web.ctx.session.webpage=="receipt":
            return web.seeother("\menus")

        i = web.input()
        oid_list = i.oids.split("_")

        shopping_list=[]

        global access_token
        global jsapi_ticket
        global token_timestamp

        js_api = JsApi_pub()
        openid = web.ctx.session.openid
        #print openid
        if (not access_token.strip()) or (int(time.time())-token_timestamp > 7200):
            access_token = sign.get_token()
            jsapi_ticket = sign.get_ticket(access_token)
            token_timestamp = int(time.time())

        total_fee = 0.0
        for oid in oid_list:
            # oid = session.pay_oid
            # print oid
            order_it = model.get_order(oid)
            order = list(order_it)
            total_fee += order[0].Price
            shopping_list.append(oid)
        
        if len(oid_list) > 1:
            out_trade_no = str(int(oid_list[0])/1000)
        else:
            out_trade_no = str(int(oid_list[0]))

        js_sign = Sign(jsapi_ticket, web.ctx.home+web.ctx.fullpath)
        sign_data = js_sign.sign()
        nonceStr = sign_data['nonceStr']
        signature = sign_data['signature']
        timestamp = sign_data['timestamp']
        url = sign_data['url']
        #print url
        #total_fee = web.cookies().get('total_price')
        #total_fee = str(int(order[0].Price)*100)  #TODO:dup orderid
        unify_pay = UnifiedOrder_pub()
        #print oid
        #print total_fee
        #print openid
        unify_pay.setParameter('out_trade_no', out_trade_no)
        unify_pay.setParameter('body','准时开饭 套餐')
        unify_pay.setParameter('total_fee',str(int(total_fee)*100))
        unify_pay.setParameter('notify_url','http://x.zhunshikaifan.com/')
        unify_pay.setParameter('trade_type','JSAPI')
        unify_pay.setParameter('openid',openid)
        prepay_id = unify_pay.getPrepayId()
        #print prepay_id

        js_api.setPrepayId(prepay_id)
        pay_data = js_api.getParameters()

        if not web.ctx.session.shoppinglist:
             web.ctx.session.shoppinglist = shopping_list

        web.ctx.session.webpage="webchatpay"
        return render.webchatpay(signature,nonceStr,timestamp,json.loads(pay_data))
Пример #8
0
def config():
    print '********************************'
    ticket = token_manager.get_ticket()
    sign = Sign(ticket, request.data['url'])
    return sign.sign()