Beispiel #1
0
def BEGIN( jyzd ):
    """
    BEGIN
    输出:0 成功 
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #2
0
def STRAC_XMLTree(jyzd):
    """
    在TRACE日志文件中记录当前的XML结构树的内容。
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    TRAC_DICTTree(jyzd)
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #3
0
def SDATA_MSetValue(jyzd):
    """
    多字符比较组件
    输入:1:比较值 2:可以为:'==','!=' 3:比较值
    输出:0 假 1 真
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #4
0
def SAPEX_RESCHECK(jyzd):
    """资源检查扩展组件
    输入:
    1,请参考RMAtool命令,412-交易,415-流程
    2,资源名称
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #5
0
def END( jyzd   ):
    """
    END
    输出:0 成功 
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    print '流程执行结束'
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #6
0
def DATA_ImpFromBuf(jyzd):
    """
    从通讯缓冲区中导入XML(XML解包)
    输入:/commbuf
    输出:/root
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #7
0
def PY_MsgAddHead(jyzd):
    """
    给通讯报文增加通讯报文头
    输入:1,报文模板名称 2,报文体 3,增加报文头后的报文
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    resp = settings.GUOCAI_TEMPLATE%{"txid":jyzd.REQ.get("root").get("TransCode"),"msg_len":len(jyzd.cipher_data),"msg":jyzd.cipher_data}
    jyzd["resp"] = resp
    log.info(jyzd.get("systemsign",""),'%s|%s|resp=[%s]',FN(),LN(),resp)
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #8
0
def TRAC_Commbuf( jyzd   ):
    """
    TRAC_Commbuf
    在TRACE日志文件中打印通讯缓冲区内容。
    输入:/commbuf
    输出:0 成功 并打印内容
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    print jyzd.TRAC_Commbuf
    print '在TRACE日志文件中打印通讯缓冲区内容。'
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #9
0
def SDATA_ImpFromBuf(jyzd):
    """
    多字符比较组件
    输入:1,/commbuf 2,/jyzd
    输出:0 假 1 真
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    log.info(jyzd.get("systemsign",""),'%s|%s|将commbuf内容转换到字典中',FN(),LN())
    xml = getxml(jyzd.commbuf)
    xml = changeCode(xml,'UTF-8')
    resp_dict = Xml2Json(xml).result
    log.info(jyzd.get("systemsign",""),'%s|%s|转换后的字典resp_dict=%s',FN(),LN(),str(resp_dict))
    jyzd["REQ"] = resp_dict
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #10
0
def SDATA_MStrCompare(jyzd):
    """
    多字符比较组件
    输入:1:比较值 2:可以为:'==','!=' 3:比较值
    输出:0 假 1 真
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    cmd = "'%s'%s'%s'"%(ass( jyzd.input.get('_1') , jyzd ),ass( jyzd.input.get('_2') , jyzd ),ass( jyzd.input.get('_3') , jyzd ))
    log.info(jyzd.get("systemsign",""),'%s|%s|执行[%s]',FN(),LN(),cmd)
    if eval(cmd):
        log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束 返回 1',FN(),LN(),FUNC())
        return 1
    else:
        log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束 返回 0',FN(),LN(),FUNC())
        return 0
Beispiel #11
0
def SCNTR_CallSubFlow( jyzd  ):
    """
    CNTR_CallSubFlow
    执行指定的子流程。
    输入:subflow_[/pub/subsysname]_unpack
    输出:0 成功 
    输出:1 失败
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    subflow = ass( jyzd.input.get('_1') , jyzd )
    print '执行指定的子流程[%s]'%subflow
    log.info(jyzd.get("systemsign",""),'执行[%s]'%subflow)
    TRAC_DICTTree(jyzd )
    log.info(jyzd.get("systemsign",""), 'jyzd[%s]'%( type(jyzd)))
    ret = flow.flow_utils.goflow("../flow/%s.flow"%subflow,jyzd)
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return ret
Beispiel #12
0
def SAPEX_CONVERT( jyzd   ):
    """
    SAPEX_CONVERT
    数据码制转化组件。
    输入:1,数据格式 2,源码制代码 3,目标码制代码 4,源节点 5,目标节点
    输出:0 成功 并打印内容
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    sjgs = ass( jyzd.input.get('_1') , jyzd )
    sou_coding = ass( jyzd.input.get('_2') , jyzd )
    tar_coding = ass( jyzd.input.get('_3') , jyzd )
    sou_data = jyzd.get(ass( jyzd.input.get('_4') , jyzd ).split("/")[-1])
    tar_data = ass( jyzd.input.get('_5') , jyzd ).split("/")[-1]
    exec("""jyzd['%s'] = sou_data.decode('%s').encode('%s')"""%(tar_data,sou_coding,tar_coding))
    log.info(jyzd.get("systemsign",""),'%s|%s|jyzd[%s]=[%s]',FN(),LN(),tar_data,jyzd[tar_data])
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #13
0
def SPKG_IXMLtoOXML(jyzd):
    """
    内部XML->外部XML报文转换
    输入:报文配置
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    import json
    f = file("../flow/gp_sys_guocai_fail_resp.json")
    gp = f.read()
    f.close
    s = ass( gp , jyzd )
    log.info(jyzd.get("systemsign",""),'%s|%s|json[%s]',FN(),LN(),s)
    s = json.loads(s)
    import dicttoxml
    jyzd["resp"] = dicttoxml.dicttoxml(s,root=False,attr_type=False)
    log.info(jyzd.get("systemsign",""),'%s|%s|resp[%s]',FN(),LN(),jyzd["resp"])
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #14
0
def SSYS_GetIniCfg(jyzd):
    """获取INI文件配置参数组件
    输入:
    1,输入ini文件名,若为相对路径,则取$GAPSETCDIR目录下的配置文件
    2,ini文件中小节的名称 如 ENV
    3,ini文件中参数的名称 如 DBNAME
    4,参数获取后存放的XML节点名称
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    log.info(jyzd.get("systemsign",""),'%s|%s|GAPSETCDIR=[%s]',FN(),LN(),settings.GAPSETCDIR)
    import ConfigParser
    config = ConfigParser.ConfigParser()
    config.readfp(open(os.sep.join([settings.GAPSETCDIR,ass( jyzd.input.get('_1') , jyzd )])))
    res = config.get(ass( jyzd.input.get('_2') , jyzd ),ass( jyzd.input.get('_3') , jyzd ))
    ininame = ass( jyzd.input.get('_4') , jyzd )
    jyzd[ininame.replace('.','/').split('/')[-1]] = res
    log.info(jyzd.get("systemsign",""),'%s|%s|%s=%s',FN(),LN(),ininame,res)
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #15
0
def PY_GetCipher(jyzd):
    """获取Cipher
    输入:
    1,resp需要返回的字段
    """
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    req = jyzd.get("REQ")
    log.info(jyzd.get("systemsign",""),'%s|%s|对字典req=%s进行处理',FN(),LN(),str(req))
    root = req.get("root",{})
    log.info(jyzd.get("systemsign",""),'%s|%s|字典root=%s',FN(),LN(),str(root))
    signdata = sort(root).encode('UTF-8') + "&key=%s"%jyzd.KEY
    log.info(jyzd.get("systemsign",""),'%s|%s|排序后的数据signdata=%s',FN(),LN(),str(signdata))
    sign_md5 = MD5(signdata)
    signdata = signdata + "&md5_sign=%s"%sign_md5
    log.info(jyzd.get("systemsign",""),'%s|%s|进行MD5运算后sign_md5=%s',FN(),LN(),sign_md5)
    pubkey = r'H:\share\work\银联全渠道\天付宝通讯机\tfb_txj\lib\gczf_rsa_public.pem' 
    cipher_data = getcipher(signdata,pubkey)
    from urllib import urlencode
    jyzd["cipher_data"] = urlencode({'cipher_data':cipher_data})
    log.info(jyzd.get("systemsign",""),'%s|%s|cipher_data[%s]',FN(),LN(),cipher_data)
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #16
0
def pub_error( jyzd   ):
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    log.info(jyzd.get("systemsign",""),'交易异常,更新响应码响应信息,更新流水,插入冲正表')
    print '交易异常,更新响应码响应信息,更新流水,插入冲正表'
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0
Beispiel #17
0
def the_end( jyzd  ):
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    print '交易结束,更新流水'
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    print jyzd.req_msg
    return 0
Beispiel #18
0
def Agentx_SysInit(jyzd):
    """系统参数环境初始化"""
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行开始',FN(),LN(),FUNC())
    log.info(jyzd.get("systemsign",""),'%s|%s|组件[%s]执行结束',FN(),LN(),FUNC())
    return 0