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'
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'
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'
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'
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)
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'