美文网首页
2018-03-14

2018-03-14

作者: 贾旭007 | 来源:发表于2018-03-14 18:12 被阅读0次
    • 将本账期、本通道里面的支付全部设置为短款、撤销/退款记录为长款

    • 找出本账期所有的对账文件

    • 打开每一个文件, 遍历每一条记录

      1. 如果Ksher单号不是900(配置文件)开头的,跳过
      2. 对账单交易插入通道交易记录表
      3. 以单号和交易类型判断pay_flow_check记录
        • 记录存在:

          • 时间、币种、金额、单号相同:平账
          • (时间、币种、金额、单号)有不同:错账

          更新pay_flow_check的通道交易金额和通道手续费、通道币种、消费者支付币种、消费者支付金额

        • 记录不存在:
          插入到pay_flow_check表

          • 支付:长款
          • 退款/撤销:短款
    • 更新交易的结算金额、手续费、VAT等

    • 更新平账记录的结算状态为可结算,其余为不可结算

    转移记录 *


    1. 从pay_flow表中将昨天/通道(成功的记录)中记录转移到pay_flow_check当中。
    2. 同步商户的费率(注意:隔天退款用支付时候的费率)
    3. 计算手续费、VAT、结算金额。
    4. 同步商户的结算币种

    对账 *

    1. 将pay_flow_check中昨天/通道:(已对账、不可结算)&(支付全部设置为短款,撤销/退款记录为长款)
    2. 找出昨天/通道的所有的对账文件
    3. 删除通道交易记录表channel_record
    4. 打开每一个文件, 遍历每一条记录
      4-1. 如果Ksher单号不是900(配置文件)开头的,跳过
      4-2. 交易记录插入通道交易记录表channel_record
    5. 更新对账状态
      • 支付:
        channel_record LEFT JOIN pay_flow_check(支付时间、币种、金额、单号)
        1. 相同: 平账
        2. 不相同: 错账
      • 退款/撤销:
        channel_record LEFT JOIN pay_flow_check(退款时间,退款单号,金额)
        1. 相同: 平账
        2. 不相同: 错账
    6. 分(支付、退款、撤销) 对账单中有但是pay_flow_check中没有的记录:
      插入到pay_flow_check表中(不可结算,ksher交易金额为0,
      支付:长款 退款/撤销: 短款
    7. 将平账记录调整为可结算。

    生成报表

    1. 获取指定国家/通道/(开始日期-结束日期)下的所有商户
    2. 排除测试商户
    3. 计算 开始日期-结束日期 跨越几个自然月
    4. 遍历自然月(如果跨月,每个商户会生成2张报表):
      • 获取本自然月里面的的交易开始日期和结束日期,记做month_begin_day, month_end_day
      • 遍历商户:
        1. 遍历 month_begin_day, month_end_day,生成data_list:
          • 获取所有的支付订单信息
          • 减去当日(退款/撤销)金额 == 支付金额的单子
        2. 遍历data_list写入到excel
        3. 计算每天的交易金额:
          • 单日支付、退款、撤销金额合计
          • 当日隔天退款合计
        4. 汇总本月本商户的当日金额和隔日金额,交易记录行数,结算金额写入excel。
        5. 根据开始日期和结束日期,生成excel
    5. 压缩excel打包

    出款

    1. 寻找通道/账期的默认出款日期(默认月份记为A)
    2. 在work_for_bill中寻找是否有这个月的记录:
      • 没有的话,加入一条记录到work_for_bill
    3. 获取所有的交易商户
    4. 减去测试商户
    5. 获取账期的跨自然, span_month
    6. 遍历span_month
      • 获取自然月的交易开始日期begin_date和结束日期end_date
      • 获取begin_date和end_date之间的交易商户
      • 删除测试商户
      • 遍历商户:
        • 生成一个出款单号
        • 遍历交易日
          • 计算交易金额,手续费,VAT、wht(可结算的交易)
          • 插入到Pay_out_detail
        • 插入到汇总表 pay_out_sum
        • 更新pay_flow_check的pay_out_id
        • 如果本月交易金额 > 0:
          * 生成发票号 get_tax_no(begin_date, end_date, mch_id, pay_channel)
          * 更新发票号

    生成发票

    1. 查找本通道、本商户的开始日期和结束日期是否有发票号
      • 如果有,返回
    2. 通过结束日期找到默认的结算日期
    3. 找到本月已经出发票的最大次数down_times
    4. 当前号 = down_times + 1
    5. 根据当前号获取佛历发票号
    6. 更新work_for_bill中的target_month和download_times

    撤销出款

    1. 清空pay_out_detail中本账期的数据
    2. 将pay_out_sum中本账期的数据清除。
    3. 将pay_flow_check中的pay_out_id清空,并且置状态为可结算,结算时间设置为''
    4. work_for_bill中download_times减去发票的数量。

    相关文章

      网友评论

          本文标题:2018-03-14

          本文链接:https://www.haomeiwen.com/subject/cwhfqftx.html