示例#1
0
def onRequestCharge(ordersID, entityDBID, datas):
    """
	KBEngine method.
	请求计费回调
	@param ordersID: 订单的ID
	@type  ordersID: uint64
	
	@param entityDBID: 提交订单的实体DBID
	@type  entityDBID: uint64
	
	@param datas: 客户端请求时所附带的数据,可将数据转发第三方平台
	@type  datas: bytes
	"""
    INFO_MSG('onRequestCharge: entityDBID=%s, entityDBID=%s' %
             (ordersID, entityDBID))
    INFO_MSG(
        "======================= interface .onRequestCharge ======================="
    )
    # 此处可通过http等手段将请求提交至第三方平台,平台返回的数据也可放入datas
    # datas将会回调至baseapp的订单回调中,具体参考API手册charge
    # 如果使用http访问,因为interfaces是单线程的,同步http访问容易卡住主线程,建议使用
    # KBEngine.registerReadFileDescriptor()和KBEngine.registerWriteFileDescriptor()结合
    # tornado异步访问。也可以结合socket模拟http的方式与平台交互。

    KBEngine.chargeResponse(ordersID, datas, KBEngine.SERVER_SUCCESS)
示例#2
0
文件: ZyfPoller.py 项目: ajue/llgame
    def processData(self, sock, addr, datas):
        """
		处理接收数据
		"""
        DEBUG_MSG(
            "====================processOrders line==========================")
        _recv_data = datas.decode()

        DEBUG_MSG("Recv datas = %r" % (_recv_data))

        if _recv_data.find("IIII") != -1:

            cutData = Helper.cutInHttp(_recv_data, 'IIII', 'IIII')
            json_data = Helper.convertDict(cutData, ',', ':')
            payid = json_data["timestamp"]

        elif _recv_data.find("out_trade_no") != -1:

            cutData = Helper.cutInHttp(_recv_data, '?', '&')

            DEBUG_MSG("CutHttp = %r" % (cutData))

            orderDict = Helper.convertDict(cutData, '&', '=')
            payid = orderDict["out_trade_no"]

        else:
            self.send(sock)
            return

        if not self.checkOrders(payid):

            DEBUG_MSG("orders is no problem!!!")
            KBEngine.chargeResponse(payid, datas, KBEngine.SERVER_SUCCESS)

        self.send(sock)
示例#3
0
def onTick(timerID):
    """
	"""
    INFO_MSG('onTick()')

    ordersID = "1234567890"
    datas = b"test"
    KBEngine.chargeResponse(ordersID, datas, KBEngine.SERVER_SUCCESS)
示例#4
0
def callback(ordersID, response):
    datas = b''
    if response.code in (200, 400):
        data = AsyncHttp.parse_json(response.body)
        datas = Bytes(**data).dumps()
    KBEngine.chargeResponse(
        ordersID, datas, KBEngine.SERVER_SUCCESS
        if response.code == 200 else KBEngine.SERVER_ERR_OP_FAILED)
示例#5
0
def requestCharge(ordersID, entityDBID, datas):
	"""
	KBEngine method.
	请求计费
	@param ordersID: 订单的ID
	@type  ordersID: uint64
	
	@param entityDBID: 提交订单的实体DBID
	@type  entityDBID: uint64
	
	@param datas: 客户端请求时所附带的数据,可将数据转发第三方平台
	@type  datas: bytes
	"""
	INFO_MSG('requestCharge: entityDBID=%s, entityDBID=%s' % (ordersID, entityDBID))
	
	# 此处可通过http等手段将请求提交至第三方平台,平台返回的数据也可放入datas
	# datas将会回调至baseapp的订单回调中,具体参考API手册charge
	
	
	KBEngine.chargeResponse(ordersID, datas, KBEngine.SERVER_SUCCESS)
示例#6
0
def onRequestCharge(ordersID, entityDBID, datas):
	"""
	KBEngine method.
	请求计费回调
	@param ordersID: 订单的ID
	@type  ordersID: uint64
	
	@param entityDBID: 提交订单的实体DBID
	@type  entityDBID: uint64
	
	@param datas: 客户端请求时所附带的数据,可将数据转发第三方平台
	@type  datas: bytes
	"""
	INFO_MSG('onRequestCharge: entityDBID=%s, entityDBID=%s' % (ordersID, entityDBID))
	
	# 此处可通过http等手段将请求提交至第三方平台,平台返回的数据也可放入datas
	# datas将会回调至baseapp的订单回调中,具体参考API手册charge
	# 如果使用http访问,因为interfaces是单线程的,同步http访问容易卡住主线程,建议使用
	# KBEngine.urlopen("https://www.baidu.com",onHttpCallback)异步访问。也可以结合异步socket的方式与平台交互(参考Poller.py)。
	
	KBEngine.chargeResponse(ordersID, datas, KBEngine.SERVER_SUCCESS)
示例#7
0
def onRequestCharge(ordersID, entityDBID, datas):
    """
	KBEngine method.
	请求计费回调
	@param ordersID: 订单的ID
	@type  ordersID: uint64
	
	@param entityDBID: 提交订单的实体DBID
	@type  entityDBID: uint64
	
	@param datas: 客户端请求时所附带的数据,可将数据转发第三方平台
	@type  datas: bytes
	"""
    INFO_MSG("onRequestCharge: entityDBID=%s, entityDBID=%s" % (ordersID, entityDBID))

    # 此处可通过http等手段将请求提交至第三方平台,平台返回的数据也可放入datas
    # datas将会回调至baseapp的订单回调中,具体参考API手册charge
    # 如果使用http访问,因为interfaces是单线程的,同步http访问容易卡住主线程,建议使用
    # KBEngine.registerReadFileDescriptor()和KBEngine.registerWriteFileDescriptor()结合
    # tornado异步访问。也可以结合socket模拟http的方式与平台交互。

    KBEngine.chargeResponse(ordersID, datas, KBEngine.SERVER_SUCCESS)
示例#8
0
    def processData(self, sock, addr, datas):
        """
		处理接收数据
		"""
        _recv_data = datas.decode()

        DEBUG_MSG("_recvBuf = %r" % _recv_data)

        order = {}
        payid = ""
        cutData = ""
        if _recv_data.find("IIII") != -1:

            cutData = Helper.cutInHttp(_recv_data, 'IIII', 'IIII')
            json_data = Helper.convertDict(cutData, ',', ':')
            payid = json_data["timestamp"]
            order["money"] = float(json_data["number"])
            order["account"] = json_data["account"]

        elif _recv_data.find("{") != -1:
            cutData = Helper.cutHttp(_recv_data, '{', '}')
            json_data = json.loads(cutData)
            payid = json_data["payid"]

            payerName = json_data["payerName"]
            index = payerName.find('|')
            order["money"] = float(json_data["amount"])
            order["account"] = payerName[index + 1:]

        DEBUG_MSG("cutData = %r" % (cutData))

        if not self.checkOrders(payid):
            DEBUG_MSG("orders is no problem!!!")
            orderStr = json.dumps(order)
            KBEngine.chargeResponse(payid, orderStr.encode(),
                                    KBEngine.SERVER_SUCCESS)
            self.send(sock, "success")

        self.send(sock, "no this order")