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)
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)
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)
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))
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'], } })
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)
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))
def config(): print '********************************' ticket = token_manager.get_ticket() sign = Sign(ticket, request.data['url']) return sign.sign()