全 BIP 写卡和短信写卡处理流程

短信写卡和全 BIP 写卡

短信写卡

特别注明会出现的意外情况:
如果服务在业务处理时突然停止,会导致部分正在处理的数据脱离业务处理边界,无法被继续处理,针对此种情况,后续需要根据实际情况制定特殊处理方案。

sequenceDiagram
远程写卡平台前端-->>远程写卡平台后台:准备短信写卡
  alt 调用失败
    远程写卡平台前端-->>远程写卡平台前端:服务出错,请联系管理员处理
  else 成功
             远程写卡平台后台->>远程写卡平台后台:记录短信写卡请求
  end
远程写卡平台前端->>远程写卡平台后台:查看短信写卡任务
全 BIP 写卡
创建全 BIP 写卡任务

1、修改 message_writecard_request 表添加 type 字段区分短信写卡和全 BIP 写卡
2、添加全 BIP 写卡需要的其它字段,eid,newIccid,oldIccid
3、修改短信写卡,添加筛选字段 type

sequenceDiagram
远程写卡平台前端-->>远程写卡平台后台:批量创建全BIP写卡任务
  alt 调用失败
    远程写卡平台前端-->>远程写卡平台前端:服务出错,请联系管理员处理
  else 成功
             远程写卡平台后台->>远程写卡平台后台:在message_writecard_request表添加写卡记录
  end
远程写卡平台前端->>远程写卡平台后台:查看已添加的全BIP写卡任务
领取全 BIP 写卡任务
sequenceDiagram
	模组->>短信服务:建立TCP连接
  alt 建立TCP连接成功
    模组->>短信服务:发送写卡任务查询命令
        短信服务->>远程写卡平台后台:转发写卡任务查询命令
		远程写卡平台后台->>远程写卡平台后台:查询message_writecard_request是否存在对应全BIP写卡任务
		远程写卡平台后台->>短信服务:一系列处理
		模组-->>短信服务:关闭连接
  else 建立TCP连接失败
    模组-->>短信服务:关闭连接
  end
  alt 存在全BIP写卡任务
        远程写卡平台后台->>短信服务:一系列处理
  else 不存在全BIP写卡任务但存在写完卡后的eid和iccid任务
    远程写卡平台后台-->>远程写卡平台后台:按照该任务已成功处理,结束
  end
短息写卡和全 BIP 写卡共同处理部分

1、记录无效的写卡请求结果记录表(写卡指令未发送到卡的全部记录)
2、短信服务需要修改短信提交记录表,添加类型 type,区分短信写卡和全 BIP 写卡

sequenceDiagram
远程写卡平台后台-->>短信服务:准备投递写卡请求
  alt 调用失败
    远程写卡平台后台-->>远程写卡平台后台:服务出错,请联系管理员处理
  else 成功
        远程写卡平台后台->>短信服务:处理短信写卡请求和全BIP写卡请求
  end
  alt 短信写卡请求
    远程写卡平台后台->>远程写卡平台后台:封装短信写卡请求
        远程写卡平台后台->>短信服务:拼装短信内容
  else 全BIP写卡请求
    远程写卡平台后台-->>远程写卡平台后台:查询是否存在全BIP写卡任务
  end
  alt 存在全BIP写卡任务
    远程写卡平台后台-->>远程写卡平台后台:封装全BIP写卡命令
        远程写卡平台后台-->>短信服务:发送全BIP写卡指令
  else 不存在全BIP写卡任务
    远程写卡平台后台-->>远程写卡平台后台:查询是否存在卡数据
  end
  alt 不存在全BIP写卡任务但存在卡数据
    远程写卡平台后台-->>远程写卡平台后台:封装全BIP写卡查询响应
        远程写卡平台后台-->>短信服务:发送全BIP写卡查询响应
  else 不存在全BIP写卡任务也不存在卡数据
    远程写卡平台后台-->>远程写卡平台后台:记录全BIP写卡请求结果,无卡数据,结束
  end
  alt 调用短信服务失败
		远程写卡平台后台->>远程写卡平台后台:根据写卡类型分别处理
  else 成功
    远程写卡平台后台->>短信服务:根据写卡类型分别处理
  end
	alt 短信写卡调用短信服务失败
    远程写卡平台后台->>远程写卡平台后台:修改短信写卡请求状态为调用写卡服务失败,以备定时任务处理
        远程写卡平台后台->>短信服务:定时处理调用写卡服务失败的写卡请求
  else 全BIP写卡调用短信服务失败
    远程写卡平台后台-->>远程写卡平台后台:修改短信写卡请求状态为调用写卡服务失败
        远程写卡平台后台-->>远程写卡平台后台:记录全BIP写卡请求结果,调用短信服务失败,结束
  end
	alt 短信写卡调用短信服务成功
    远程写卡平台后台->>短信服务:拼装短信内容
        短信服务->>短信服务:调用短信网关发送短信并记录发送的内容
  else 全BIP写卡调用短信服务成功
    远程写卡平台后台-->>短信服务:拼装全BIP写卡指令
        短信服务-->>模组:通过TCP连接下发写卡指令,记录下发内容
  end
  alt 调用短信网关失败
    短信服务->>短信服务:未收到网关回复,处理结果为空
        短信服务->>网关中心:定时处理处理结果为空的写卡请求
  else 成功
    短信服务->>网关中心:拼装短信头下发短信
  end
  alt 和模组通讯失败
    短信服务-->>远程写卡平台后台:上报指令下发结果
        远程写卡平台后台-->>远程写卡平台后台:记录写卡结果,指令下发失败,结束
  else 成功
    短信服务->>模组:下发写卡指令
  end
网关中心->>模组:收到短信解析短信
  alt 模组支持短信功能
    模组->>网关中心:回复短信内容
  else 模组不支持短信功能
    模组->>短信服务:BIP上行,建立TCP或者UDP连接
  end
  alt 短信回复
    网关中心->>短信服务:拼装短信头回复短信
  else BIP上行
    模组->>短信服务:TCP或者UDP上报写卡结果
  end
  alt 调用远程写卡平台后台失败
    短信服务-->>短信服务:修改短信回复或者BIP回复状态为处理失败
        短信服务-->>远程写卡平台后台:定时处理短信回复或者BIP回复状态为处理失败的数据
  else 成功
    短信服务-->>远程写卡平台后台:取出短信或者BIP内容
  end
远程写卡平台后台->>远程写卡平台后台:解析短信或者BIP内容确定写卡结果
远程写卡平台前端->>远程写卡平台后台:查看写卡结果
BIP 结果上报

1、在短信服务区分开,本次上报针对的是短信写卡还是全 BIP 写卡

sequenceDiagram
	模组->>短信服务:发送数据
	短信服务->>短信服务:根据数据中包含的eid和时间查询提交记录表中对应的最近的提交记录
	短信服务->>调用服务:根据提交记录,将模组上报的结果发送到对应的调用服务

BIP 数据传输步骤

模组发起的 TCP 连接并不需要服务端做出明确的相应,模组只会按照指定的操作步骤去处理。

sequenceDiagram
	模组->>短信服务:建立TCP连接
  alt 建立TCP连接成功
    模组->>短信服务:发送数据
	     短信服务->>模组:关闭连接
  else 建立TCP连接失败
    模组-->>短信服务:关闭连接
  end

上一篇 导入数据功能改造
写卡平台接口目录