token鉴权,充值订单成功业务

parent 81692534
...@@ -9,5 +9,5 @@ ...@@ -9,5 +9,5 @@
from app.api.app import app from app.api.app import app
if __name__ == '__main__': if __name__ == '__main__':
app.run('127.0.0.1', port=8000, debug=True) app.run('0.0.0.0', port=8000, debug=True)
...@@ -15,7 +15,8 @@ dev: ...@@ -15,7 +15,8 @@ dev:
filemode: a filemode: a
format: "%(asctime)s %(name)s %(levelname)s %(message)s" format: "%(asctime)s %(name)s %(levelname)s %(message)s"
datefmt: "%Y-%m-%d %H:%M:%S %a" datefmt: "%Y-%m-%d %H:%M:%S %a"
token_auth_url:
https://devtamper.tanpuyun.com/fatools/token/auth
test: test:
MySQL: MySQL:
tamp_user_db: tamp_user tamp_user_db: tamp_user
...@@ -24,16 +25,17 @@ test: ...@@ -24,16 +25,17 @@ test:
port: 3306 port: 3306
user: root user: root
password: '@imeng123' password: '@imeng123'
redis: redis:
host: localhost host: localhost
port: 6379 port: 6379
db: 0 db: 0
log: log:
filename: /logs/tamp_course_order.log filename: /logs/tamp_course_order.log
filemode: a filemode: a
format: "%(asctime)s %(name)s %(levelname)s %(message)s" format: "%(asctime)s %(name)s %(levelname)s %(message)s"
datefmt: "%Y-%m-%d %H:%M:%S %a" datefmt: "%Y-%m-%d %H:%M:%S %a"
token_auth_url:
https://testtamper.tanpuyun.com/fatools/token/auth
prod: prod:
MySQL: MySQL:
tamp_user_db: tamp_user tamp_user_db: tamp_user
...@@ -42,12 +44,16 @@ prod: ...@@ -42,12 +44,16 @@ prod:
port: 3306 port: 3306
user: tamp_pay user: tamp_pay
password: '@imeng123' password: '@imeng123'
redis: redis:
host: localhost host: localhost
port: 6379 port: 6379
db: 0 db: 0
log: log:
filename: /logs/tamp_course_order.log filename: /logs/tamp_course_order.log
filemode: a filemode: a
format: "%(asctime)s %(name)s %(levelname)s %(message)s" format: "%(asctime)s %(name)s %(levelname)s %(message)s"
datefmt: "%Y-%m-%d %H:%M:%S %a" datefmt: "%Y-%m-%d %H:%M:%S %a"
token_auth_url:
https://tamper.tanpuyun.com/fatools/token/auth
...@@ -9,8 +9,11 @@ ...@@ -9,8 +9,11 @@
class Errors: class Errors:
"""""" """"""
USER_ALREADY_EXISTS = 20001
TOKEN_INVALID = '9001'
USER_ALREADY_EXISTS = '9002'
MSG = { MSG = {
USER_ALREADY_EXISTS: '用户已经存在' TOKEN_INVALID: 'TOKEN失效',
USER_ALREADY_EXISTS: '用户已经存在',
} }
...@@ -6,7 +6,10 @@ ...@@ -6,7 +6,10 @@
# @Email : acepengxiong@163.com # @Email : acepengxiong@163.com
# @Software : PyCharm # @Software : PyCharm
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
import requests
from flask import jsonify, make_response, request from flask import jsonify, make_response, request
from app.api.engine import config, env
from app.config.errors import Errors from app.config.errors import Errors
...@@ -27,7 +30,7 @@ class CustomFlaskErr(Exception): ...@@ -27,7 +30,7 @@ class CustomFlaskErr(Exception):
rv = dict(self.payload or ()) rv = dict(self.payload or ())
# 增加 dict key: return code # 增加 dict key: return code
rv['return_code'] = self.return_code rv['statusCode'] = self.return_code
# 增加 dict key: message, 具体内容由常量定义文件中通过 return_code 转化而来 # 增加 dict key: message, 具体内容由常量定义文件中通过 return_code 转化而来
rv['message'] = Errors.MSG[self.return_code] rv['message'] = Errors.MSG[self.return_code]
...@@ -47,7 +50,16 @@ def add_errorhandler(app): ...@@ -47,7 +50,16 @@ def add_errorhandler(app):
@app.before_request @app.before_request
def before_request(): def before_request():
request.return_success = {'return_code': 0, 'message': 'ok'} # token鉴权
token = request.headers.get('tampToken', '')
# token = 'eyJhbHQiOiJIUzI1NiIsImFsZyI6IkhTMjU2IiwidHlwIjoiSldUIn0.eyJwYXlsb2FkIjoidGFtcC8xOTM3NzkzMDc5NzY5NDE1NjgiLCJpc3MiOiJjYWl4aWFvcXVhbiIsImlhdCI6MTYwNjI5MDYzMH0.WnADEiWd27A8wr2DmOyX1kcs0dWLxpoO-k1yiF0qbBk'
url = config[env]['token_auth_url']
res = requests.get(url, {'tampToken': token})
resp = res.json()
if resp['statusCode'] != "0000":
raise CustomFlaskErr(Errors.TOKEN_INVALID)
request.user_id = resp['attributes']
request.return_success = {'statusCode': "0000", 'message': 'ok'}
@app.after_request @app.after_request
def after_request(response): def after_request(response):
......
...@@ -30,7 +30,7 @@ class TopUpOrder(Resource): ...@@ -30,7 +30,7 @@ class TopUpOrder(Resource):
args = self.parser.parse_args() args = self.parser.parse_args()
data = order_service.TopUpOrderService().get_order(args) data = order_service.TopUpOrderService().get_order(args)
resp = request.return_success resp = request.return_success
resp['data'] = data resp['attributes'] = data
return resp return resp
def post(self): def post(self):
...@@ -64,7 +64,7 @@ class ConsumeOrder(Resource): ...@@ -64,7 +64,7 @@ class ConsumeOrder(Resource):
args = self.parser.parse_args() args = self.parser.parse_args()
data = order_service.CurriculumOrderService().get_order(args) data = order_service.CurriculumOrderService().get_order(args)
resp = request.return_success resp = request.return_success
resp['data'] = data resp['attributes'] = data
return resp return resp
def post(self): def post(self):
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
import time import time
from app.api.engine import tamp_pay_session, tamp_user_session from app.api.engine import tamp_pay_session, tamp_user_session
from app.model.account_balance import AccountBalance
from app.model.account_topup_order import AccountTopupOrder from app.model.account_topup_order import AccountTopupOrder
from app.model.curriculum_order import CurriculumOrder from app.model.curriculum_order import CurriculumOrder
from app.model.tamp_user_models import CurriculumPrice, CurriculumColumn, CurriculumRes from app.model.tamp_user_models import CurriculumPrice, CurriculumColumn, CurriculumRes
...@@ -67,4 +68,41 @@ class CurriculumOrderService: ...@@ -67,4 +68,41 @@ class CurriculumOrderService:
return True return True
def topUpSuccessAction(order_no):
"""."""
topup_order = tamp_pay_session.query(AccountTopupOrder).filter(AccountTopupOrder.order_no == order_no).first()
# 幂等校验
if topup_order.order_status == 1:
return False
tamp_pay_session.query(AccountTopupOrder).filter(AccountTopupOrder.order_no == order_no).update({
'order_status': 1
})
# 账户充值
account_topup_order = tamp_pay_session.query(AccountTopupOrder).filter(AccountTopupOrder.order_no == order_no).first()
if account_topup_order.pay_method == 4:
# 苹果支付
if not tamp_pay_session.query(AccountBalance).filter(AccountBalance.user_id == account_topup_order.user_id).all():
tamp_pay_session.add(AccountBalance(apple_balance=account_topup_order.amount))
else:
tamp_pay_session.query(AccountBalance).filter(AccountBalance.user_id == account_topup_order.user_id).update({
'apple_balance': AccountBalance.apple_balance + account_topup_order.amount
})
else:
# 支付宝,微信支付
if not tamp_pay_session.query(AccountBalance).filter(AccountBalance.user_id == account_topup_order.user_id).all():
tamp_pay_session.add(AccountBalance(android_balance=account_topup_order.amount))
else:
tamp_pay_session.query(AccountBalance).filter(AccountBalance.user_id == account_topup_order.user_id).update({
'apple_balance': AccountBalance.android_balance + account_topup_order.amount
})
tamp_pay_session.commit()
def consumeSucessAction(order_no):
"""."""
curriculum_order = tamp_pay_session.query(CurriculumOrder.order_no == order_no).all()
# 幂等校验
if curriculum_order.order_status == 1:
return False
# tamp_pay_session.query(CurriculumOrder).filter(CurriculumOrder.order_no == )
\ No newline at end of file
...@@ -29,7 +29,7 @@ alipay_public_key_string = '''-----BEGIN PUBLIC KEY----- ...@@ -29,7 +29,7 @@ alipay_public_key_string = '''-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhTT+Cn3Y+BYysAqXsjAqjJ14aUzvUHKz0LnaAifTE10IRyzzcFn+8SXIhzHoJ/OQrj7DPoDV18iSX7PcHPDdRCFyOBP1RQkxFLmnpqFY6BRoEm6kaWea0rfg44EXgZSCO0e7gwjez8W4zO7S9w+HOECbB61ZfmsM+oTT41kUyXmcpUgvkSiayxyeNcnzSiS06GuoMbSpaVSjAoTAiFZdyaB51+wDXf3JvZARnlvnD2Jk5sFDzZbeVIfygInFo/ICIQRr96Jfwcey9ZO3PfvxZlDqa0cbCmZi7PyMIlwVf/bHF+rwiXboJm+rauu+Py4ch5BrakWVF/kty+jitLxD6QIDAQAB MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhTT+Cn3Y+BYysAqXsjAqjJ14aUzvUHKz0LnaAifTE10IRyzzcFn+8SXIhzHoJ/OQrj7DPoDV18iSX7PcHPDdRCFyOBP1RQkxFLmnpqFY6BRoEm6kaWea0rfg44EXgZSCO0e7gwjez8W4zO7S9w+HOECbB61ZfmsM+oTT41kUyXmcpUgvkSiayxyeNcnzSiS06GuoMbSpaVSjAoTAiFZdyaB51+wDXf3JvZARnlvnD2Jk5sFDzZbeVIfygInFo/ICIQRr96Jfwcey9ZO3PfvxZlDqa0cbCmZi7PyMIlwVf/bHF+rwiXboJm+rauu+Py4ch5BrakWVF/kty+jitLxD6QIDAQAB
-----END PUBLIC KEY-----''' -----END PUBLIC KEY-----'''
app_private_key_string = '''-----BEGIN RSA PRIVATE KEY----- app_private_key_string = '''-----BEGIN PRIVATE KEY-----
MIIEpAIBAAKCAQEA0wfwXYuvhbfavgl98gVv0yCQuTWI+auqP6gmKzysCD/SOXKz MIIEpAIBAAKCAQEA0wfwXYuvhbfavgl98gVv0yCQuTWI+auqP6gmKzysCD/SOXKz
ZzXOOfDWaAUX4yf+5Q+K+whMzbvSl9HzHFEqGchhMPCji0P+Rbs7J5P37ZNCW5VT ZzXOOfDWaAUX4yf+5Q+K+whMzbvSl9HzHFEqGchhMPCji0P+Rbs7J5P37ZNCW5VT
9oBF1db54rCqnsgY17lQuj8Kf1dB6Np8MqxaocBzZaR9l7iOcqoSfyHsTMm3NQOc 9oBF1db54rCqnsgY17lQuj8Kf1dB6Np8MqxaocBzZaR9l7iOcqoSfyHsTMm3NQOc
...@@ -55,7 +55,7 @@ Oa/EcDZ3NHZToN+tXjncVK2XL14Yu6JdibLfHLMKFzO1Rm2e1VVnyIFGm/Y64VQ4 ...@@ -55,7 +55,7 @@ Oa/EcDZ3NHZToN+tXjncVK2XL14Yu6JdibLfHLMKFzO1Rm2e1VVnyIFGm/Y64VQ4
c0rkw9ECgYBbv3leaa5N/RGPiZLi2Rc8lb5t4Pt8ZdlHd+MUF+BGNlfo8UgeOJUU c0rkw9ECgYBbv3leaa5N/RGPiZLi2Rc8lb5t4Pt8ZdlHd+MUF+BGNlfo8UgeOJUU
Fkfjdj+UJp3LE/meT53zrK1PWaS3j51vdfb/YLGf6vgiqN9kj0xpyV4uPCZc1dHI Fkfjdj+UJp3LE/meT53zrK1PWaS3j51vdfb/YLGf6vgiqN9kj0xpyV4uPCZc1dHI
hwtSuAgS7rSrMeMS9omsZro9L1eHDjA8Ja4L0UNGi7i8dGFnp1BtOQ== hwtSuAgS7rSrMeMS9omsZro9L1eHDjA8Ja4L0UNGi7i8dGFnp1BtOQ==
-----END RSA PRIVATE KEY-----''' -----END PRIVATE KEY-----'''
APP_ID = '2021002112638152' APP_ID = '2021002112638152'
URL_PREFIX = 'https://tampe.tanpuyun.com' URL_PREFIX = 'https://tampe.tanpuyun.com'
...@@ -86,11 +86,7 @@ def prePay(subject, out_trade_no, total_amount, notify_path='/webservice/notify' ...@@ -86,11 +86,7 @@ def prePay(subject, out_trade_no, total_amount, notify_path='/webservice/notify'
) )
if not result: if not result:
return False return False
result = unquote(result)
# res = dict(parse_qs(result))
# res = {k: v[0] for k, v in res.items()}
print(result) print(result)
# pay_url = 'https://openapi.alipay.com/gateway.do?' + result
return result return result
def alipay_transfer(): def alipay_transfer():
......
...@@ -116,8 +116,8 @@ class WXPay(object): ...@@ -116,8 +116,8 @@ class WXPay(object):
def getPaySign(self): def getPaySign(self):
""".""" """."""
sign_string = 'appId={0}&nonceStr={1}&package=prepay_id={2}&signType={3}&timeStamp={4}&key={5}'.format( sign_string = 'appId={0}&nonceStr={1}&package={6}prepay_id={2}&signType={3}&timeStamp={4}&key={5}'.format(
self.appid, self.nonce_str, self.prepay_id, self.sign_type, self.timeStamp, self.key) self.appid, self.nonce_str, self.prepay_id, self.sign_type, self.timeStamp, self.key, 'Sign=WXPay')
self.paySign = hashlib.md5(sign_string.encode("utf-8")).hexdigest().upper() self.paySign = hashlib.md5(sign_string.encode("utf-8")).hexdigest().upper()
if __name__ == '__main__': if __name__ == '__main__':
......
...@@ -4051,3 +4051,340 @@ FROM curriculum_order ...@@ -4051,3 +4051,340 @@ FROM curriculum_order
WHERE curriculum_order.user_id = %(user_id_1)s WHERE curriculum_order.user_id = %(user_id_1)s
2020-11-25 14:15:00 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': 'user1'} 2020-11-25 14:15:00 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': 'user1'}
2020-11-25 14:15:00 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 14:15:00] "GET /tamp_order/micro_shop/consumeOrder?user_id=user1 HTTP/1.1" 200 - 2020-11-25 14:15:00 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 14:15:00] "GET /tamp_order/micro_shop/consumeOrder?user_id=user1 HTTP/1.1" 200 -
2020-11-25 15:53:26 Wed werkzeug INFO * Running on http://127.0.0.1:8000/ (Press CTRL+C to quit)
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO SHOW VARIABLES LIKE 'sql_mode'
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO SELECT DATABASE()
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin AS anon_1
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO BEGIN (implicit)
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO SELECT curriculum_column.id AS curriculum_column_id, curriculum_column.code AS curriculum_column_code, curriculum_column.title AS curriculum_column_title, curriculum_column.info AS curriculum_column_info, curriculum_column.content AS curriculum_column_content, curriculum_column.cover AS curriculum_column_cover, curriculum_column.level AS curriculum_column_level, curriculum_column.parent_id AS curriculum_column_parent_id, curriculum_column.status AS curriculum_column_status, curriculum_column.sort AS curriculum_column_sort, curriculum_column.module_id AS curriculum_column_module_id, curriculum_column.create_time AS curriculum_column_create_time, curriculum_column.create_by AS curriculum_column_create_by, curriculum_column.update_time AS curriculum_column_update_time, curriculum_column.delete_tag AS curriculum_column_delete_tag
FROM curriculum_column
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO SELECT curriculum_res.id AS curriculum_res_id, curriculum_res.title AS curriculum_res_title, curriculum_res.audio AS curriculum_res_audio, curriculum_res.audio_type AS curriculum_res_audio_type, curriculum_res.teacher_id AS curriculum_res_teacher_id, curriculum_res.teacher_name AS curriculum_res_teacher_name, curriculum_res.content AS curriculum_res_content, curriculum_res.duration AS curriculum_res_duration, curriculum_res.file_size AS curriculum_res_file_size, curriculum_res.org_id AS curriculum_res_org_id, curriculum_res.room_pwd AS curriculum_res_room_pwd, curriculum_res.create_by AS curriculum_res_create_by, curriculum_res.create_time AS curriculum_res_create_time, curriculum_res.update_by AS curriculum_res_update_by, curriculum_res.update_time AS curriculum_res_update_time, curriculum_res.delete_tag AS curriculum_res_delete_tag, curriculum_res.read_num AS curriculum_res_read_num, curriculum_res.read_base_num AS curriculum_res_read_base_num, curriculum_res.status AS curriculum_res_status, curriculum_res.sort AS curriculum_res_sort, curriculum_res.info AS curriculum_res_info, curriculum_res.cover AS curriculum_res_cover
FROM curriculum_res
2020-11-25 15:54:39 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO SHOW VARIABLES LIKE 'sql_mode'
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO SELECT DATABASE()
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin AS anon_1
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO BEGIN (implicit)
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO SELECT curriculum_order.id AS curriculum_order_id, curriculum_order.order_no AS curriculum_order_order_no, curriculum_order.transaction_serial_no AS curriculum_order_transaction_serial_no, curriculum_order.prod_type AS curriculum_order_prod_type, curriculum_order.prod_name AS curriculum_order_prod_name, curriculum_order.prod_id AS curriculum_order_prod_id, curriculum_order.prod_quantity AS curriculum_order_prod_quantity, curriculum_order.amount AS curriculum_order_amount, curriculum_order.user_id AS curriculum_order_user_id, curriculum_order.order_status AS curriculum_order_order_status, curriculum_order.pay_method AS curriculum_order_pay_method, curriculum_order.create_time AS curriculum_order_create_time, curriculum_order.pay_time AS curriculum_order_pay_time, curriculum_order.complete_time AS curriculum_order_complete_time, curriculum_order.del_flag AS curriculum_order_del_flag
FROM curriculum_order
WHERE curriculum_order.user_id = %(user_id_1)s
2020-11-25 15:54:40 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': 'user1'}
2020-11-25 15:54:40 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 15:54:40] "GET /tamp_order/micro_shop/consumeOrder?user_id=user1 HTTP/1.1" 200 -
2020-11-25 15:57:42 Wed werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO SHOW VARIABLES LIKE 'sql_mode'
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO SELECT DATABASE()
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin AS anon_1
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO BEGIN (implicit)
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO SELECT account_topup_order.id AS account_topup_order_id, account_topup_order.order_no AS account_topup_order_order_no, account_topup_order.transaction_serial_no AS account_topup_order_transaction_serial_no, account_topup_order.user_id AS account_topup_order_user_id, account_topup_order.amount AS account_topup_order_amount, account_topup_order.order_status AS account_topup_order_order_status, account_topup_order.pay_method AS account_topup_order_pay_method, account_topup_order.create_time AS account_topup_order_create_time, account_topup_order.pay_time AS account_topup_order_pay_time, account_topup_order.complete_time AS account_topup_order_complete_time, account_topup_order.del_flag AS account_topup_order_del_flag
FROM account_topup_order
WHERE account_topup_order.user_id = %(user_id_1)s
2020-11-25 15:57:52 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': '193779307976941568'}
2020-11-25 15:57:52 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 15:57:52] "GET /tamp_order/micro_shop/topUpOrder?user_id=193779307976941568 HTTP/1.1" 200 -
2020-11-25 16:06:16 Wed sqlalchemy.engine.base.Engine INFO SELECT account_topup_order.id AS account_topup_order_id, account_topup_order.order_no AS account_topup_order_order_no, account_topup_order.transaction_serial_no AS account_topup_order_transaction_serial_no, account_topup_order.user_id AS account_topup_order_user_id, account_topup_order.amount AS account_topup_order_amount, account_topup_order.order_status AS account_topup_order_order_status, account_topup_order.pay_method AS account_topup_order_pay_method, account_topup_order.create_time AS account_topup_order_create_time, account_topup_order.pay_time AS account_topup_order_pay_time, account_topup_order.complete_time AS account_topup_order_complete_time, account_topup_order.del_flag AS account_topup_order_del_flag
FROM account_topup_order
WHERE account_topup_order.user_id = %(user_id_1)s
2020-11-25 16:06:16 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': '1'}
2020-11-25 16:06:16 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 16:06:16] "GET /tamp_order/micro_shop/topUpOrder?user_id=1 HTTP/1.1" 200 -
2020-11-25 16:06:31 Wed sqlalchemy.engine.base.Engine INFO SELECT account_topup_order.id AS account_topup_order_id, account_topup_order.order_no AS account_topup_order_order_no, account_topup_order.transaction_serial_no AS account_topup_order_transaction_serial_no, account_topup_order.user_id AS account_topup_order_user_id, account_topup_order.amount AS account_topup_order_amount, account_topup_order.order_status AS account_topup_order_order_status, account_topup_order.pay_method AS account_topup_order_pay_method, account_topup_order.create_time AS account_topup_order_create_time, account_topup_order.pay_time AS account_topup_order_pay_time, account_topup_order.complete_time AS account_topup_order_complete_time, account_topup_order.del_flag AS account_topup_order_del_flag
FROM account_topup_order
WHERE account_topup_order.user_id = %(user_id_1)s
2020-11-25 16:06:31 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': '193779307976941568'}
2020-11-25 16:06:31 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 16:06:31] "GET /tamp_order/micro_shop/topUpOrder?user_id=193779307976941568 HTTP/1.1" 200 -
2020-11-25 16:06:39 Wed sqlalchemy.engine.base.Engine INFO SELECT account_topup_order.id AS account_topup_order_id, account_topup_order.order_no AS account_topup_order_order_no, account_topup_order.transaction_serial_no AS account_topup_order_transaction_serial_no, account_topup_order.user_id AS account_topup_order_user_id, account_topup_order.amount AS account_topup_order_amount, account_topup_order.order_status AS account_topup_order_order_status, account_topup_order.pay_method AS account_topup_order_pay_method, account_topup_order.create_time AS account_topup_order_create_time, account_topup_order.pay_time AS account_topup_order_pay_time, account_topup_order.complete_time AS account_topup_order_complete_time, account_topup_order.del_flag AS account_topup_order_del_flag
FROM account_topup_order
WHERE account_topup_order.user_id = %(user_id_1)s
2020-11-25 16:06:39 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': '1'}
2020-11-25 16:06:39 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 16:06:39] "GET /tamp_order/micro_shop/topUpOrder?user_id=1 HTTP/1.1" 200 -
2020-11-25 16:14:31 Wed sqlalchemy.engine.base.Engine INFO SELECT account_topup_order.id AS account_topup_order_id, account_topup_order.order_no AS account_topup_order_order_no, account_topup_order.transaction_serial_no AS account_topup_order_transaction_serial_no, account_topup_order.user_id AS account_topup_order_user_id, account_topup_order.amount AS account_topup_order_amount, account_topup_order.order_status AS account_topup_order_order_status, account_topup_order.pay_method AS account_topup_order_pay_method, account_topup_order.create_time AS account_topup_order_create_time, account_topup_order.pay_time AS account_topup_order_pay_time, account_topup_order.complete_time AS account_topup_order_complete_time, account_topup_order.del_flag AS account_topup_order_del_flag
FROM account_topup_order
WHERE account_topup_order.user_id = %(user_id_1)s
2020-11-25 16:14:31 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': '1'}
2020-11-25 16:14:31 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 16:14:31] "GET /tamp_order/micro_shop/topUpOrder?user_id=1 HTTP/1.1" 200 -
2020-11-25 16:14:36 Wed sqlalchemy.engine.base.Engine INFO SELECT account_topup_order.id AS account_topup_order_id, account_topup_order.order_no AS account_topup_order_order_no, account_topup_order.transaction_serial_no AS account_topup_order_transaction_serial_no, account_topup_order.user_id AS account_topup_order_user_id, account_topup_order.amount AS account_topup_order_amount, account_topup_order.order_status AS account_topup_order_order_status, account_topup_order.pay_method AS account_topup_order_pay_method, account_topup_order.create_time AS account_topup_order_create_time, account_topup_order.pay_time AS account_topup_order_pay_time, account_topup_order.complete_time AS account_topup_order_complete_time, account_topup_order.del_flag AS account_topup_order_del_flag
FROM account_topup_order
WHERE account_topup_order.user_id = %(user_id_1)s
2020-11-25 16:14:36 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': '1'}
2020-11-25 16:14:36 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 16:14:36] "GET /tamp_order/micro_shop/topUpOrder?user_id=1 HTTP/1.1" 200 -
2020-11-25 16:29:19 Wed werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO SHOW VARIABLES LIKE 'sql_mode'
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO SELECT DATABASE()
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin AS anon_1
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO BEGIN (implicit)
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO SELECT curriculum_column.id AS curriculum_column_id, curriculum_column.code AS curriculum_column_code, curriculum_column.title AS curriculum_column_title, curriculum_column.info AS curriculum_column_info, curriculum_column.content AS curriculum_column_content, curriculum_column.cover AS curriculum_column_cover, curriculum_column.level AS curriculum_column_level, curriculum_column.parent_id AS curriculum_column_parent_id, curriculum_column.status AS curriculum_column_status, curriculum_column.sort AS curriculum_column_sort, curriculum_column.module_id AS curriculum_column_module_id, curriculum_column.create_time AS curriculum_column_create_time, curriculum_column.create_by AS curriculum_column_create_by, curriculum_column.update_time AS curriculum_column_update_time, curriculum_column.delete_tag AS curriculum_column_delete_tag
FROM curriculum_column
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO SELECT curriculum_res.id AS curriculum_res_id, curriculum_res.title AS curriculum_res_title, curriculum_res.audio AS curriculum_res_audio, curriculum_res.audio_type AS curriculum_res_audio_type, curriculum_res.teacher_id AS curriculum_res_teacher_id, curriculum_res.teacher_name AS curriculum_res_teacher_name, curriculum_res.content AS curriculum_res_content, curriculum_res.duration AS curriculum_res_duration, curriculum_res.file_size AS curriculum_res_file_size, curriculum_res.org_id AS curriculum_res_org_id, curriculum_res.room_pwd AS curriculum_res_room_pwd, curriculum_res.create_by AS curriculum_res_create_by, curriculum_res.create_time AS curriculum_res_create_time, curriculum_res.update_by AS curriculum_res_update_by, curriculum_res.update_time AS curriculum_res_update_time, curriculum_res.delete_tag AS curriculum_res_delete_tag, curriculum_res.read_num AS curriculum_res_read_num, curriculum_res.read_base_num AS curriculum_res_read_base_num, curriculum_res.status AS curriculum_res_status, curriculum_res.sort AS curriculum_res_sort, curriculum_res.info AS curriculum_res_info, curriculum_res.cover AS curriculum_res_cover
FROM curriculum_res
2020-11-25 16:29:24 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO SHOW VARIABLES LIKE 'sql_mode'
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO SELECT DATABASE()
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin AS anon_1
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO BEGIN (implicit)
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO SELECT curriculum_order.id AS curriculum_order_id, curriculum_order.order_no AS curriculum_order_order_no, curriculum_order.transaction_serial_no AS curriculum_order_transaction_serial_no, curriculum_order.prod_type AS curriculum_order_prod_type, curriculum_order.prod_name AS curriculum_order_prod_name, curriculum_order.prod_id AS curriculum_order_prod_id, curriculum_order.prod_quantity AS curriculum_order_prod_quantity, curriculum_order.amount AS curriculum_order_amount, curriculum_order.user_id AS curriculum_order_user_id, curriculum_order.order_status AS curriculum_order_order_status, curriculum_order.pay_method AS curriculum_order_pay_method, curriculum_order.create_time AS curriculum_order_create_time, curriculum_order.pay_time AS curriculum_order_pay_time, curriculum_order.complete_time AS curriculum_order_complete_time, curriculum_order.del_flag AS curriculum_order_del_flag
FROM curriculum_order
WHERE curriculum_order.user_id = %(user_id_1)s
2020-11-25 16:29:25 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': 'user1'}
2020-11-25 16:29:25 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 16:29:25] "GET /tamp_order/micro_shop/consumeOrder?user_id=user1 HTTP/1.1" 200 -
2020-11-25 16:30:38 Wed werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO SHOW VARIABLES LIKE 'sql_mode'
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO SELECT DATABASE()
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin AS anon_1
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO BEGIN (implicit)
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO SELECT curriculum_column.id AS curriculum_column_id, curriculum_column.code AS curriculum_column_code, curriculum_column.title AS curriculum_column_title, curriculum_column.info AS curriculum_column_info, curriculum_column.content AS curriculum_column_content, curriculum_column.cover AS curriculum_column_cover, curriculum_column.level AS curriculum_column_level, curriculum_column.parent_id AS curriculum_column_parent_id, curriculum_column.status AS curriculum_column_status, curriculum_column.sort AS curriculum_column_sort, curriculum_column.module_id AS curriculum_column_module_id, curriculum_column.create_time AS curriculum_column_create_time, curriculum_column.create_by AS curriculum_column_create_by, curriculum_column.update_time AS curriculum_column_update_time, curriculum_column.delete_tag AS curriculum_column_delete_tag
FROM curriculum_column
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO SELECT curriculum_res.id AS curriculum_res_id, curriculum_res.title AS curriculum_res_title, curriculum_res.audio AS curriculum_res_audio, curriculum_res.audio_type AS curriculum_res_audio_type, curriculum_res.teacher_id AS curriculum_res_teacher_id, curriculum_res.teacher_name AS curriculum_res_teacher_name, curriculum_res.content AS curriculum_res_content, curriculum_res.duration AS curriculum_res_duration, curriculum_res.file_size AS curriculum_res_file_size, curriculum_res.org_id AS curriculum_res_org_id, curriculum_res.room_pwd AS curriculum_res_room_pwd, curriculum_res.create_by AS curriculum_res_create_by, curriculum_res.create_time AS curriculum_res_create_time, curriculum_res.update_by AS curriculum_res_update_by, curriculum_res.update_time AS curriculum_res_update_time, curriculum_res.delete_tag AS curriculum_res_delete_tag, curriculum_res.read_num AS curriculum_res_read_num, curriculum_res.read_base_num AS curriculum_res_read_base_num, curriculum_res.status AS curriculum_res_status, curriculum_res.sort AS curriculum_res_sort, curriculum_res.info AS curriculum_res_info, curriculum_res.cover AS curriculum_res_cover
FROM curriculum_res
2020-11-25 16:30:40 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO SHOW VARIABLES LIKE 'sql_mode'
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO SELECT DATABASE()
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin AS anon_1
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO BEGIN (implicit)
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO SELECT curriculum_order.id AS curriculum_order_id, curriculum_order.order_no AS curriculum_order_order_no, curriculum_order.transaction_serial_no AS curriculum_order_transaction_serial_no, curriculum_order.prod_type AS curriculum_order_prod_type, curriculum_order.prod_name AS curriculum_order_prod_name, curriculum_order.prod_id AS curriculum_order_prod_id, curriculum_order.prod_quantity AS curriculum_order_prod_quantity, curriculum_order.amount AS curriculum_order_amount, curriculum_order.user_id AS curriculum_order_user_id, curriculum_order.order_status AS curriculum_order_order_status, curriculum_order.pay_method AS curriculum_order_pay_method, curriculum_order.create_time AS curriculum_order_create_time, curriculum_order.pay_time AS curriculum_order_pay_time, curriculum_order.complete_time AS curriculum_order_complete_time, curriculum_order.del_flag AS curriculum_order_del_flag
FROM curriculum_order
WHERE curriculum_order.user_id = %(user_id_1)s
2020-11-25 16:30:41 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': 'user1'}
2020-11-25 16:30:41 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 16:30:41] "GET /tamp_order/micro_shop/consumeOrder?user_id=user1 HTTP/1.1" 200 -
2020-11-25 16:31:00 Wed sqlalchemy.engine.base.Engine INFO SELECT account_topup_order.id AS account_topup_order_id, account_topup_order.order_no AS account_topup_order_order_no, account_topup_order.transaction_serial_no AS account_topup_order_transaction_serial_no, account_topup_order.user_id AS account_topup_order_user_id, account_topup_order.amount AS account_topup_order_amount, account_topup_order.order_status AS account_topup_order_order_status, account_topup_order.pay_method AS account_topup_order_pay_method, account_topup_order.create_time AS account_topup_order_create_time, account_topup_order.pay_time AS account_topup_order_pay_time, account_topup_order.complete_time AS account_topup_order_complete_time, account_topup_order.del_flag AS account_topup_order_del_flag
FROM account_topup_order
WHERE account_topup_order.user_id = %(user_id_1)s
2020-11-25 16:31:00 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': '1'}
2020-11-25 16:31:00 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 16:31:00] "GET /tamp_order/micro_shop/topUpOrder?user_id=1 HTTP/1.1" 200 -
2020-11-25 16:31:22 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 16:31:22] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 16:46:22 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 16:46:22] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 16:55:34 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 16:55:34] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 16:59:40 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 16:59:40] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:00:41 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:00:41] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:21:37 Wed werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2020-11-25 17:21:51 Wed app.api.app ERROR Exception on /tamp_order/micro_shop/topUpOrder [GET]
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1947, in full_dispatch_request
rv = self.preprocess_request()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2241, in preprocess_request
rv = func()
File "/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py", line 54, in before_request
url = 'https://devtamper.tanpuyun.com/fatools/token/auth?tampToken=' + token
TypeError: can only concatenate str (not "NoneType") to str
2020-11-25 17:21:51 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:21:51] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 500 -
2020-11-25 17:21:59 Wed app.api.app ERROR Exception on /tamp_order/micro_shop/topUpOrder [GET]
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1947, in full_dispatch_request
rv = self.preprocess_request()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2241, in preprocess_request
rv = func()
File "/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py", line 54, in before_request
url = 'https://devtamper.tanpuyun.com/fatools/token/auth?tampToken=' + token
TypeError: can only concatenate str (not "NoneType") to str
2020-11-25 17:21:59 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:21:59] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 500 -
2020-11-25 17:23:08 Wed werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2020-11-25 17:23:14 Wed app.api.app ERROR Exception on /tamp_order/micro_shop/topUpOrder [GET]
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1947, in full_dispatch_request
rv = self.preprocess_request()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2241, in preprocess_request
rv = func()
File "/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py", line 57, in before_request
raise CustomFlaskErr(Errors.TOKEN_INVALID)
app.controller.errorhandler.CustomFlaskErr
2020-11-25 17:23:14 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:23:14] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 500 -
2020-11-25 17:23:15 Wed app.api.app ERROR Exception on /tamp_order/micro_shop/topUpOrder [GET]
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1947, in full_dispatch_request
rv = self.preprocess_request()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2241, in preprocess_request
rv = func()
File "/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py", line 57, in before_request
raise CustomFlaskErr(Errors.TOKEN_INVALID)
app.controller.errorhandler.CustomFlaskErr
2020-11-25 17:23:15 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:23:15] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 500 -
2020-11-25 17:23:17 Wed app.api.app ERROR Exception on /tamp_order/micro_shop/topUpOrder [GET]
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1947, in full_dispatch_request
rv = self.preprocess_request()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2241, in preprocess_request
rv = func()
File "/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py", line 57, in before_request
raise CustomFlaskErr(Errors.TOKEN_INVALID)
app.controller.errorhandler.CustomFlaskErr
2020-11-25 17:23:17 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:23:17] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 500 -
2020-11-25 17:24:14 Wed app.api.app ERROR Exception on /tamp_order/micro_shop/consumeOrder [GET]
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1947, in full_dispatch_request
rv = self.preprocess_request()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2241, in preprocess_request
rv = func()
File "/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py", line 54, in before_request
url = 'https://devtamper.tanpuyun.com/fatools/token/auth?tampToken=' + token
TypeError: can only concatenate str (not "NoneType") to str
2020-11-25 17:24:14 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 17:24:14] "GET /tamp_order/micro_shop/consumeOrder?user_id=user1 HTTP/1.1" 500 -
2020-11-25 17:24:42 Wed app.api.app ERROR Exception on /tamp_order/micro_shop/consumeOrder [GET]
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1947, in full_dispatch_request
rv = self.preprocess_request()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2241, in preprocess_request
rv = func()
File "/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py", line 54, in before_request
url = 'https://devtamper.tanpuyun.com/fatools/token/auth?tampToken=' + token
TypeError: can only concatenate str (not "NoneType") to str
2020-11-25 17:24:42 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 17:24:42] "GET /tamp_order/micro_shop/consumeOrder?user_id=user1 HTTP/1.1" 500 -
2020-11-25 17:25:28 Wed werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2020-11-25 17:25:28 Wed werkzeug INFO * Restarting with stat
2020-11-25 17:25:29 Wed werkzeug WARNING * Debugger is active!
2020-11-25 17:25:29 Wed werkzeug INFO * Debugger PIN: 191-123-093
2020-11-25 17:25:30 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 17:25:30] "GET /tamp_order/micro_shop/consumeOrder?user_id=user1 HTTP/1.1" 500 -
2020-11-25 17:25:46 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:25:46] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 200 -
2020-11-25 17:25:53 Wed werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py', reloading
2020-11-25 17:25:54 Wed werkzeug INFO * Restarting with stat
2020-11-25 17:25:55 Wed werkzeug WARNING * Debugger is active!
2020-11-25 17:25:55 Wed werkzeug INFO * Debugger PIN: 191-123-093
2020-11-25 17:25:56 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 17:25:56] "GET /tamp_order/micro_shop/consumeOrder?user_id=user1 HTTP/1.1" 200 -
2020-11-25 17:26:04 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:26:04] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 200 -
2020-11-25 17:26:13 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:26:13] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:26:30 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:26:30] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:26:55 Wed werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py', reloading
2020-11-25 17:26:55 Wed werkzeug INFO * Restarting with stat
2020-11-25 17:26:56 Wed werkzeug WARNING * Debugger is active!
2020-11-25 17:26:57 Wed werkzeug INFO * Debugger PIN: 191-123-093
2020-11-25 17:30:09 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:30:09] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 200 -
2020-11-25 17:31:01 Wed werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py', reloading
2020-11-25 17:31:01 Wed werkzeug INFO * Restarting with stat
2020-11-25 17:31:02 Wed werkzeug WARNING * Debugger is active!
2020-11-25 17:31:02 Wed werkzeug INFO * Debugger PIN: 191-123-093
2020-11-25 17:31:12 Wed werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py', reloading
2020-11-25 17:31:13 Wed werkzeug INFO * Restarting with stat
2020-11-25 17:31:14 Wed werkzeug WARNING * Debugger is active!
2020-11-25 17:31:14 Wed werkzeug INFO * Debugger PIN: 191-123-093
2020-11-25 17:31:47 Wed werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py', reloading
2020-11-25 17:31:48 Wed werkzeug INFO * Restarting with stat
2020-11-25 17:31:49 Wed werkzeug WARNING * Debugger is active!
2020-11-25 17:31:49 Wed werkzeug INFO * Debugger PIN: 191-123-093
2020-11-25 17:32:05 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:32:05] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:32:08 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:32:08] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:32:09 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:32:09] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:32:09 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:32:09] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:32:10 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:32:10] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:32:10 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:32:10] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:32:11 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:32:11] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:32:11 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:32:11] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:32:16 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:32:16] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 200 -
2020-11-25 17:32:19 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:32:19] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:33:05 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:33:05] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:33:36 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:33:36] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:33:40 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:33:40] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 200 -
2020-11-25 17:33:45 Wed werkzeug INFO 172.168.0.47 - - [25/Nov/2020 17:33:45] "GET /tamp_order/micro_shop/topUpOrder HTTP/1.1" 400 -
2020-11-25 17:38:44 Wed werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py', reloading
2020-11-25 17:38:44 Wed werkzeug INFO * Restarting with stat
2020-11-25 17:38:45 Wed werkzeug WARNING * Debugger is active!
2020-11-25 17:38:45 Wed werkzeug INFO * Debugger PIN: 191-123-093
2020-11-25 17:38:50 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 17:38:50] "GET /tamp_order/micro_shop/consumeOrder?user_id=eyJhbHQiOiJIUzI1NiIsImFsZyI6IkhTMjU2IiwidHlwIjoiSldUIn0.eyJwYXlsb2FkIjoidGFtcC8xOTM3NzkzMDc5NzY5NDE1NjgiLCJpc3MiOiJjYWl4aWFvcXVhbiIsImlhdCI6MTYwNjI5MDYzMH0.WnADEiWd27A8wr2DmOyX1kcs0dWLxpoO-k1yiF0qbBk HTTP/1.1" 200 -
2020-11-25 17:38:52 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 17:38:52] "GET /tamp_order/micro_shop/consumeOrder?user_id=eyJhbHQiOiJIUzI1NiIsImFsZyI6IkhTMjU2IiwidHlwIjoiSldUIn0.eyJwYXlsb2FkIjoidGFtcC8xOTM3NzkzMDc5NzY5NDE1NjgiLCJpc3MiOiJjYWl4aWFvcXVhbiIsImlhdCI6MTYwNjI5MDYzMH0.WnADEiWd27A8wr2DmOyX1kcs0dWLxpoO-k1yiF0qbBk HTTP/1.1" 200 -
2020-11-25 17:38:57 Wed werkzeug INFO * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
2020-11-25 17:38:57 Wed werkzeug INFO * Restarting with stat
2020-11-25 17:38:58 Wed werkzeug WARNING * Debugger is active!
2020-11-25 17:38:58 Wed werkzeug INFO * Debugger PIN: 191-123-093
2020-11-25 17:38:58 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 17:38:58] "GET /tamp_order/micro_shop/consumeOrder?user_id=eyJhbHQiOiJIUzI1NiIsImFsZyI6IkhTMjU2IiwidHlwIjoiSldUIn0.eyJwYXlsb2FkIjoidGFtcC8xOTM3NzkzMDc5NzY5NDE1NjgiLCJpc3MiOiJjYWl4aWFvcXVhbiIsImlhdCI6MTYwNjI5MDYzMH0.WnADEiWd27A8wr2DmOyX1kcs0dWLxpoO-k1yiF0qbBk HTTP/1.1" 200 -
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SHOW VARIABLES LIKE 'sql_mode'
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SELECT DATABASE()
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin AS anon_1
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO BEGIN (implicit)
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SELECT curriculum_column.id AS curriculum_column_id, curriculum_column.code AS curriculum_column_code, curriculum_column.title AS curriculum_column_title, curriculum_column.info AS curriculum_column_info, curriculum_column.content AS curriculum_column_content, curriculum_column.cover AS curriculum_column_cover, curriculum_column.level AS curriculum_column_level, curriculum_column.parent_id AS curriculum_column_parent_id, curriculum_column.status AS curriculum_column_status, curriculum_column.sort AS curriculum_column_sort, curriculum_column.module_id AS curriculum_column_module_id, curriculum_column.create_time AS curriculum_column_create_time, curriculum_column.create_by AS curriculum_column_create_by, curriculum_column.update_time AS curriculum_column_update_time, curriculum_column.delete_tag AS curriculum_column_delete_tag
FROM curriculum_column
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SELECT curriculum_res.id AS curriculum_res_id, curriculum_res.title AS curriculum_res_title, curriculum_res.audio AS curriculum_res_audio, curriculum_res.audio_type AS curriculum_res_audio_type, curriculum_res.teacher_id AS curriculum_res_teacher_id, curriculum_res.teacher_name AS curriculum_res_teacher_name, curriculum_res.content AS curriculum_res_content, curriculum_res.duration AS curriculum_res_duration, curriculum_res.file_size AS curriculum_res_file_size, curriculum_res.org_id AS curriculum_res_org_id, curriculum_res.room_pwd AS curriculum_res_room_pwd, curriculum_res.create_by AS curriculum_res_create_by, curriculum_res.create_time AS curriculum_res_create_time, curriculum_res.update_by AS curriculum_res_update_by, curriculum_res.update_time AS curriculum_res_update_time, curriculum_res.delete_tag AS curriculum_res_delete_tag, curriculum_res.read_num AS curriculum_res_read_num, curriculum_res.read_base_num AS curriculum_res_read_base_num, curriculum_res.status AS curriculum_res_status, curriculum_res.sort AS curriculum_res_sort, curriculum_res.info AS curriculum_res_info, curriculum_res.cover AS curriculum_res_cover
FROM curriculum_res
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SHOW VARIABLES LIKE 'sql_mode'
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SELECT DATABASE()
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin AS anon_1
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {}
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO BEGIN (implicit)
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO SELECT curriculum_order.id AS curriculum_order_id, curriculum_order.order_no AS curriculum_order_order_no, curriculum_order.transaction_serial_no AS curriculum_order_transaction_serial_no, curriculum_order.prod_type AS curriculum_order_prod_type, curriculum_order.prod_name AS curriculum_order_prod_name, curriculum_order.prod_id AS curriculum_order_prod_id, curriculum_order.prod_quantity AS curriculum_order_prod_quantity, curriculum_order.amount AS curriculum_order_amount, curriculum_order.user_id AS curriculum_order_user_id, curriculum_order.order_status AS curriculum_order_order_status, curriculum_order.pay_method AS curriculum_order_pay_method, curriculum_order.create_time AS curriculum_order_create_time, curriculum_order.pay_time AS curriculum_order_pay_time, curriculum_order.complete_time AS curriculum_order_complete_time, curriculum_order.del_flag AS curriculum_order_del_flag
FROM curriculum_order
WHERE curriculum_order.user_id = %(user_id_1)s
2020-11-25 17:39:17 Wed sqlalchemy.engine.base.Engine INFO {'user_id_1': 'eyJhbHQiOiJIUzI1NiIsImFsZyI6IkhTMjU2IiwidHlwIjoiSldUIn0.eyJwYXlsb2FkIjoidGFtcC8xOTM3NzkzMDc5NzY5NDE1NjgiLCJpc3MiOiJjYWl4aWFvcXVhbiIsImlhdCI6MTYwNjI5MDYzMH0.WnADEiWd27A8wr2DmOyX1kcs0dWLxpoO-k1yiF0qbBk'}
2020-11-25 17:39:17 Wed werkzeug INFO 127.0.0.1 - - [25/Nov/2020 17:39:17] "GET /tamp_order/micro_shop/consumeOrder?user_id=eyJhbHQiOiJIUzI1NiIsImFsZyI6IkhTMjU2IiwidHlwIjoiSldUIn0.eyJwYXlsb2FkIjoidGFtcC8xOTM3NzkzMDc5NzY5NDE1NjgiLCJpc3MiOiJjYWl4aWFvcXVhbiIsImlhdCI6MTYwNjI5MDYzMH0.WnADEiWd27A8wr2DmOyX1kcs0dWLxpoO-k1yiF0qbBk HTTP/1.1" 200 -
2020-11-25 17:39:37 Wed werkzeug INFO * Detected change in '/Users/pengxiong/Desktop/tamp_course_order/app/controller/errorhandler.py', reloading
2020-11-25 17:39:37 Wed werkzeug INFO * Restarting with stat
2020-11-25 17:39:39 Wed werkzeug WARNING * Debugger is active!
2020-11-25 17:39:39 Wed werkzeug INFO * Debugger PIN: 191-123-093
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment