def toggle_push_notification(member_id): con, cur = sqlrelay_client_cursor(app.DEBUG) cur.prepareQuery('CALL member_push_notification(?,?)') cur.inputBind('1', app.APP_ID) cur.inputBind('2', member_id) cur.executeQuery() push_notification = cur.getField(0, 0) cur.clearBinds() # 푸시설정이력 저장 cur.sendQuery(""" INSERT INTO ms_member_history ( app_id , member_id , category , `int0` ) VALUES ( %d , %d , %d , %d )""" % (app.APP_ID, member_id, membership_pb2.HISTORY_MEMBER_PUSH, int(push_notification))) sqlrelay_client_close(cur, con) if not push_notification: return None return True if push_notification == '1' else False
def apps_new(form): app_key = _hash_app_key(form.app_name.data) app_secret = _hash_app_secret(app_key) app_name = set_default(form.app_name.data) support_android = set_support(form.support_android.data) support_ios = set_support(form.support_ios.data) support_playstore = set_support(form.support_playstore.data) support_appstore = set_support(form.support_appstore.data) support_gameflier = set_support(form.support_gameflier.data) playstore_url = set_default(form.playstore_url.data) appstore_url = set_default(form.appstore_url.data) gameflier_url = set_default(form.gameflier_url.data) gcm_sender_id = set_default(form.gcm_sender_id.data) gcm_server_api_key = set_default(form.gcm_server_api_key.data) gcm_config_path = '' if form.gcm_config_path.data: gcm_config_path = to_utf8(form.gcm_config_path.data.filename) facebook_app_name = set_default(form.facebook_app_name.data) facebook_app_id = set_default(form.facebook_app_id.data) facebook_app_secret = set_default(form.facebook_app_secret.data) facebook_api_version = facebook_api_version_value(form.facebook_api_version.data) status = form.status.data con, cur = sqlrelay_client_cursor() cur.prepareQuery('CALL create_app(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)') cur.inputBind("1", app_key) cur.inputBind("2", app_secret) cur.inputBind("3", app_name) cur.inputBind("4", support_android) cur.inputBind("5", support_ios) cur.inputBind("6", support_playstore) cur.inputBind("7", support_appstore) cur.inputBind("8", support_gameflier) cur.inputBind("9", playstore_url) cur.inputBind("10", appstore_url) cur.inputBind("11", gameflier_url) cur.inputBind("12", gcm_sender_id) cur.inputBind("13", gcm_server_api_key) cur.inputBind("14", gcm_config_path) cur.inputBind("15", facebook_app_id) cur.inputBind("16", facebook_app_name) cur.inputBind("17", facebook_app_secret) cur.inputBind("18", facebook_api_version) cur.inputBind("19", status) cur.executeQuery() app_id = cur.getField(0,0) sqlrelay_client_close(cur, con) if form.gcm_config_path.data: # GCM Config 파일저장 _app_save_file(form.gcm_config_path.data, app_id)
def purchase_effectuate(effectuate): member_id = effectuate['member_id'] payment_id = effectuate['payment_id'] order_id = effectuate['order_id'] service_platform = effectuate['service_platform'] inapp_id = effectuate['inapp_id'] con, cur = sqlrelay_client_cursor(app.DEBUG) cur.prepareQuery('CALL purchase_effectuate(?,?,?,?,?,?)') cur.inputBind('1', app.APP_ID) cur.inputBind('2', member_id) cur.inputBind('3', payment_id) cur.inputBind('4', order_id) cur.inputBind('5', membership_pb2.PAYMENT_STATUS_PURCHASED) cur.inputBind('6', membership_pb2.PAYMENT_STATUS_EFFECTUATED) cur.executeQuery() payment_id = cur.getFieldAsInteger(0, 0) cur.clearBinds() # 효력지급이력 저장 cur.sendQuery(""" INSERT INTO ms_member_history ( app_id , member_id , category , `int0` , `int1` , `int2` , str0 ) VALUES ( %d , %d , %d , %d , %d , %d , '%s' )""" % (app.APP_ID, member_id, membership_pb2.HISTORY_MEMBER_PAYMENT, service_platform, membership_pb2.PAYMENT_STATUS_EFFECTUATED, payment_id, inapp_id)) sqlrelay_client_close(cur, con) return payment_id if payment_id > 0 else None
def apps_edit(form): app_id = form.app_id.data app_name = set_default(form.app_name.data) support_android = set_support(form.support_android.data) support_ios = set_support(form.support_ios.data) support_playstore = set_support(form.support_playstore.data) support_appstore = set_support(form.support_appstore.data) support_gameflier = set_support(form.support_gameflier.data) playstore_url = set_default(form.playstore_url.data) appstore_url = set_default(form.appstore_url.data) gameflier_url = set_default(form.gameflier_url.data) gcm_sender_id = set_default(form.gcm_sender_id.data) gcm_server_api_key = set_default(form.gcm_server_api_key.data) gcm_config_path = _app_save_file(form.gcm_config_path.data, app_id) facebook_app_name = set_default(form.facebook_app_name.data) facebook_app_id = set_default(form.facebook_app_id.data) facebook_app_secret = set_default(form.facebook_app_secret.data) facebook_api_version = facebook_api_version_value(form.facebook_api_version.data) status = form.status.data con, cur = sqlrelay_client_cursor() cur.prepareQuery('CALL update_app(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)') cur.inputBind("1", app_id) cur.inputBind("2", app_name) cur.inputBind("3", support_android) cur.inputBind("4", support_ios) cur.inputBind("5", support_playstore) cur.inputBind("6", support_appstore) cur.inputBind("7", support_gameflier) cur.inputBind("8", playstore_url) cur.inputBind("9", appstore_url) cur.inputBind("10", gameflier_url) cur.inputBind("11", gcm_sender_id) cur.inputBind("12", gcm_server_api_key) cur.inputBind("13", gcm_config_path) cur.inputBind("14", facebook_app_id) cur.inputBind("15", facebook_app_name) cur.inputBind("16", facebook_app_secret) cur.inputBind("17", facebook_api_version) cur.inputBind("18", status) cur.executeQuery() sqlrelay_client_close(cur, con)
def purchase(member_id, product, payment): inapp_id = payment.inapp_id service_platform = payment.service_platform appstore_name = '' receipt = '' if payment.playstore: order_id = payment.playstore.order_id package_name = payment.playstore.package_name purchase_time = payment.playstore.purchase_time purchase_state = payment.playstore.purchase_state purchase_token = payment.playstore.purchase_token developer_payload = payment.playstore.developer_payload signature = payment.playstore.signature elif payment.appstore: # TODO: setting for appstore return None elif payment.gameflier: # TODO: setting for gameflier return None else: return None con, cur = sqlrelay_client_cursor(app.DEBUG) cur.prepareQuery('CALL purchase(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)') cur.inputBind('1', app.APP_ID) cur.inputBind('2', member_id) cur.inputBind('3', product['product_id']) cur.inputBind('4', service_platform) cur.inputBind('5', product['product_price']) cur.inputBind('6', order_id) cur.inputBind('7', package_name) cur.inputBind('8', inapp_id) cur.inputBind('9', purchase_time) cur.inputBind('10', purchase_state) cur.inputBind('11', purchase_token) cur.inputBind('12', developer_payload) cur.inputBind('13', signature) cur.inputBind('14', appstore_name) cur.inputBind('15', receipt) cur.inputBind('16', membership_pb2.PAYMENT_STATUS_PURCHASED) cur.executeQuery() payment_id = cur.getFieldAsInteger(0, 0) cur.clearBinds() # 구매이력 저장 cur.sendQuery(""" INSERT INTO ms_member_history ( app_id , member_id , category , `int0` , `int1` , `int2` , str0 ) VALUES ( %d , %d , %d , %d , %d , %d , '%s' )""" % (app.APP_ID, member_id, membership_pb2.HISTORY_MEMBER_PAYMENT, service_platform, membership_pb2.PAYMENT_STATUS_PURCHASED, payment_id, inapp_id)) sqlrelay_client_close(cur, con) return payment_id if payment_id > 0 else None
def member_info(udid, device_platform, service_platform, gcm_token = '', facebook_id = 0, facebook_email = ''): con, cur = sqlrelay_client_cursor(app.DEBUG) cur.prepareQuery('CALL member_info(?, ?, ?, ?, ?, ?, ?, ?)') cur.inputBind('1', app.APP_ID) cur.inputBind('2', to_utf8(udid)) cur.inputBind('3', device_platform) cur.inputBind('4', service_platform) cur.inputBind('5', gcm_token) cur.inputBind('6', facebook_id) cur.inputBind('7', to_utf8(facebook_email)) cur.inputBind('8', membership_pb2.MEMBER_STATUS_NORMAL) cur.executeQuery() member_id = cur.getFieldAsInteger(0, 0) if member_id <= 0: sqlrelay_client_close(cur, con) return None cur.clearBinds() # 로그인 로그저장 cur.sendQuery(""" INSERT INTO ms_member_history ( app_id , member_id , category , `int0` , `int1` , `int2` , str0 ) VALUES ( %d , %d , %d , %d , %d , %d , '%s' )""" % (app.APP_ID, member_id, membership_pb2.HISTORY_MEMBER_ACCESS, device_platform, service_platform, facebook_id, udid)) # 미완료 결제정보 cur.sendQuery(""" SELECT service_platform , payment_id , inapp_order_id , inapp_developer_payload , inapp_purchase_token , inapp_product_sku FROM ms_app_payment WHERE member_id = %d AND app_id = %d AND status = %d """ % (member_id, app.APP_ID, membership_pb2.PAYMENT_STATUS_PURCHASED)) sqlrelay_client_close(cur, con) payments = [] for row in range(0, cur.rowCount()): payments.append({ 'service_platform': cur.getFieldAsInteger(row, 0), 'payment_id': cur.getFieldAsInteger(row, 1), 'order_id': cur.getField(row, 2), 'developer_payload': cur.getField(row, 3), 'purchase_token': cur.getField(row, 4), 'inapp_id': cur.getField(row, 5) }) return member_id, payments