Exemple #1
0
 def doLinkYunUnionConfirm(cls, rpath):
     rparam = PayHelper.getArgsDict()
     TyContext.ftlog.info(cls.__name__, 'doLinkYunUnionConfirm->args=',
                          rparam)
     try:
         mobileId = rparam['mobile']
         serviceid = rparam['serviceid']
         orderId = rparam['orderid']
         orderPlatformId = str(rparam['orderid'])[2:]
         sign = rparam['sign']
         # 效验sign=mobile#serviceid#orderid#密钥
         isOk = PayHelper.verify_md5(sign, mobileId, '#', serviceid, '#',
                                     orderId, '#', cls.sign_skey)
         if isOk:
             orderPlatformId = ShortOrderIdMap.get_long_order_id(
                 orderPlatformId)
             TyContext.RunMode.get_server_link(orderPlatformId)
             order_state = TyContext.RedisPayData.execute(
                 'HGET', 'sdk.charge:' + str(orderPlatformId), 'state')
             if order_state is not None and int(
                     order_state) >= PayConst.CHARGE_STATE_BEGIN and int(
                         order_state) < PayConst.CHARGE_STATE_DONE:
                 return '0'
     except:
         TyContext.ftlog.exception()
     TyContext.ftlog.info(cls.__name__,
                          'doLinkYunUnionConfirm->ERROR, rparam=', rparam)
     return '1'
Exemple #2
0
 def doLinkYunConfirm(cls, rpath):
     rparam = PayHelper.getArgsDict()
     TyContext.ftlog.info('doLinkYunConfirm->args=', rparam)
     try:
         orderId = rparam['orderId']
         mobileId = rparam['mobileId']
         price = rparam['price']
         goodsInf = rparam['goodsInf']
         sign = rparam['sign']
         # 效验sign
         isOk = PayHelper.verify_md5(sign, orderId, mobileId, price, goodsInf, cls.sign_skey)
         if isOk:
             orderPlatformId = str(goodsInf)[2:]
             orderPlatformId = ShortOrderIdMap.get_long_order_id(orderPlatformId)
             TyContext.RunMode.get_server_link(orderPlatformId)
             order_state = TyContext.RedisPayData.execute('HGET', 'sdk.charge:' + str(orderPlatformId), 'state')
             if order_state != None and int(order_state) >= PayConst.CHARGE_STATE_BEGIN and int(
                     order_state) < PayConst.CHARGE_STATE_DONE:
                 return 'Y'
             return 'N'
         else:
             TyContext.ftlog.error('doLinkYunConfirm->ERROR, sign error !! ')
             return 'N'
     except:
         TyContext.ftlog.exception()
         TyContext.ftlog.error('doLinkYunConfirm->ERROR, exception error !! ', rparam)
         return 'N'
Exemple #3
0
    def doCardCallback(cls, rpath):
        rparam = PayHelper.getArgsDict()
        TyContext.ftlog.info('cls.doCardCallback->rparam=', rparam)

        version = rparam['version']
        merId = rparam['merId']
        payMoney = rparam['payMoney']
        orderId = rparam['orderId']
        payResult = rparam['payResult']
        privateField = rparam['privateField']
        payDetails = rparam['payDetails']
        md5String = rparam['md5String']
        # signString = rparam['signString']

        if merId != cls.szf_merId:
            TyContext.ftlog.error('cls.doCardCallback-> its not my merId ! merId=', merId, 'my=', cls.szf_merId)
            return 'error'

        cardMoney = rparam.get('cardMoney')
        if cardMoney:
            combineString = version + "|" + merId + "|" + payMoney + "|" + cardMoney + "|" + orderId + "|" + payResult + "|" + privateField + "|" + payDetails + "|" + cls.szf_privateKey
        else:
            combineString = version + merId + payMoney + orderId + payResult + privateField + payDetails + cls.szf_privateKey

        isOk = PayHelper.verify_md5(md5String, combineString)
        if not isOk:
            TyContext.ftlog.error('cls.doCardCallback-> md5 error ! md5String=', md5String, 'combineString=',
                                  combineString)
            return 'error'

        platformOrderId = privateField
        rparam['chargeType'] = 'shenzhoufu.card'

        if payResult != '1':
            # 长连接通知,客户端支付失败
            TyContext.ftlog.error('cls.doCardCallback error, charge return error !!!')
            errcode = 0
            if 'errcode' in rparam:
                errcode = int(rparam['errcode'])
            errorInfo = ''
            if errcode in cls.szf_call_back_code:
                errorInfo = cls.szf_call_back_code[errcode]
            else:
                errorInfo = '神州付-未知错误'
            errorInfo = errorInfo.decode('utf-8')
            PayHelper.callback_error(platformOrderId, errorInfo, rparam)
            return orderId

        total_fee = float(payMoney) / 100
        isOK = PayHelper.callback_ok(platformOrderId, total_fee, rparam)
        if isOK:
            return orderId
        else:
            return 'error'
Exemple #4
0
    def doLinkYunUnionCallback(cls, rpath):
        rparam = PayHelper.getArgsDict()
        TyContext.ftlog.info(cls.__name__, 'doLinkYunUnionCallback->args=',
                             rparam)
        try:
            mobileId = rparam['mobile']
            serviceid = rparam['serviceid']
            orderPlatformId = str(rparam['orderid'])[2:]
            msgcontent = rparam['msgcontent']
            sign = rparam['sign']

            # 效验sign
            isOk = PayHelper.verify_md5(sign, mobileId, '#', serviceid, '#',
                                        msgcontent, '#', cls.sign_skey)
            if isOk:
                # 对凌云充值的订单,把手机号补充到订单信息里
                orderPlatformId = ShortOrderIdMap.get_long_order_id(
                    orderPlatformId)
                TyContext.RunMode.get_server_link(orderPlatformId)
                PayHelper.set_order_mobile(orderPlatformId, mobileId)
                operator = PayHelper.get_mobile_operator(mobileId)
                if operator == 'chinaunicom':
                    rparam['chargeType'] = 'linkyununion'
                elif operator == 'chinatelecom':
                    rparam['chargeType'] = 'linkyundx'
                else:
                    TyContext.ftlog.error(
                        cls.__name__,
                        'doLinkYunUnionCallback->ERROR get_mobile_operator for',
                        mobileId)
                if msgcontent == '0:0':
                    PayHelper.callback_ok(orderPlatformId, -1, rparam)
                    return '0'
                else:
                    PayHelper.callback_error(orderPlatformId, '', rparam)
        except:
            TyContext.ftlog.exception()
        TyContext.ftlog.info(cls.__name__,
                             'doLinkYunUnionCallback->ERROR, rparam=', rparam)
        return '0'
Exemple #5
0
    def callback(cls, rpath):
        success = 0
        try:
            rparam = PayHelper.getArgsDict()
            TyContext.ftlog.info(cls.__name__, 'callback rparam=', rparam)

            platformOrderId = rparam['platformOrderId']
            sign = rparam['sign']
            result = rparam['result']

            isOK = PayHelper.verify_md5(sign, platformOrderId, result, cls.sign_skey)
            if isOK:
                if result == '1':
                    isBackOk = PayHelper.callback_ok(platformOrderId, -1, rparam)
                    if isBackOk:
                        success = 1
                else:
                    PayHelper.callback_error(platformOrderId, '', rparam)
        except:
            TyContext.ftlog.exception()

        return '{"result":{"success":%d,"platformOrderId":"%s"}}' % (success, platformOrderId)
Exemple #6
0
    def doLinkYunCallback(cls, rpath):
        rparam = PayHelper.getArgsDict()
        TyContext.ftlog.info('doLinkYunCallback->args=', rparam)
        try:
            orderId = rparam['orderId']
            mobileId = rparam['mobileId']
            price = rparam['price']
            goodsInf = rparam['goodsInf']
            sign = rparam['sign']
            isOk = PayHelper.verify_md5(sign, orderId, mobileId, price, goodsInf, cls.sign_skey)
            # 效验sign
            if not isOk:
                TyContext.ftlog.info('doLinkYunCallback->ERROR, sign error !!')
                return '1||sign error'

            platformOrderId = str(goodsInf)[2:]
            if not platformOrderId:
                TyContext.ftlog.info('doLinkYunCallback->ERROR, platformOrderId error !!')
                return '1||orderPlatformId error'

            # 对凌云充值的订单,把手机号补充到订单信息里
            platformOrderId = ShortOrderIdMap.get_long_order_id(platformOrderId)
            TyContext.RunMode.get_server_link(platformOrderId)
            PayHelper.set_order_mobile(platformOrderId, mobileId)

            rparam['chargeType'] = 'linkyun'
            rparam['third_orderid'] = orderId
            total_fee = float(price) / 100
            isOk = PayHelper.callback_ok(platformOrderId, total_fee, rparam)
            if isOk:
                return '0||'
            else:
                return '1||charge fail'
        except:
            TyContext.ftlog.exception()
            TyContext.ftlog.info('doLinkYunCallback->ERROR, param error !! rparam=', rparam)
            return '1||charge exception'