Delphi医保支付【支持重庆,湖南,湖北,河南,江苏,黑龙江,吉林等医保接口】

sm2签名,sm4加解密,签到签退,文件上传下载,医保结算,冲正交易,目录下载,医保对账

{

    "infno": "9001",

    "msgid": "P22072200668202109192345543433",

    "mdtrtarea_admvs": "220722",

    "insuplc_admdvs": "220722",

    "recer_sys_code": "1",

    "dev_no": "",

    "dev_safe_info": "",

    "cainfo": "jvFGEiKVq/2Xkr8z8czsRt5TEIeBCXUiVzOvbcjJY9oZYIPmOezBru6Ve1q41YLOLb/9yn0R+w0s/uFM1pG5sQ==",

    "signtype": "SM2",

    "infver": "V1.0",

    "opter_type": "1",

    "opter": "admin",

    "opter_name": "管理员",

    "inf_time": "2021-09-19 23:45:54",

    "fixmedins_code": "H22072200145",

    "fixmedins_name": "长岭县疾病预防控制中心",

    "sign_no": "",

    "input": "uA+YZcFLqgd6Sm/CmYyr2+HvgPYF1nHyKJuQYXgmaG/Tl9u+AXOBp5TlJbTDrn2X0mVs9xXxXNvWctpfc4hRDF2a03zwzd3uHulUVXqulfghsCw0DD+raNqV1/D+XbTL"

}

Delphi医保支付【支持重庆,湖南,湖北,河南,江苏,黑龙江,吉林等医保接口】_第1张图片

procedure TForm1.Button2Click(Sender: TObject);
var
  input,cainfo,instr: string;
  json: ISuperObject;
begin
  //业务参数
  json := SO;
  try
    json.S['signIn.mac'] := '00E066EA27FA';           //签到MAC地址
    json.S['signIn.opter_no'] := '94_00001_王璐璐22';   //操作员编号
    json.S['signIn.ip'] := '10.25.2.54';              //签到IP地址
    instr := json.AsString;

    Edit_cainfo.Text := Sm2Sign(instr, sm2key);   //sm2签名
    Edit_input.Text := Sm4Encrypt(instr, sm4key); //sm4加密

    cainfo := Trim(Edit_cainfo.Text);
    input := Trim(Edit_input.Text);
  finally
    json := nil;
  end;

  json := SO;
  try
    //公共参数
    json.S['infno'] := Trim(Edit_infno.Text);                         //交易编号
    json.S['msgid'] := GetMsgid(Trim(Edit_fixmedins_code.Text));      //发送方报文ID
    json.S['mdtrtarea_admvs'] := Trim(Edit_mdtrtarea_admvs.Text);     //就医地医保区划
    json.S['insuplc_admdvs'] := Trim(Edit_insuplc_admdvs.Text);       //参保地医保区划
    json.S['recer_sys_code'] := '1';                                  //接收方系统代码
    json.S['dev_no'] := '';                                           //设备编号
    json.S['dev_safe_info'] := '';                                    //设备安全信息
    json.S['cainfo'] := cainfo;                                       //数字签名信息
    json.S['signtype'] := 'SM2';                                      //签名类型
    json.S['infver'] := 'V1.0';                                       //接口版本号
    json.S['opter_type'] := '1';                                      //经办人类别
    json.S['opter'] := Trim(Edit_opter.Text);                         //经办人
    json.S['opter_name'] := Trim(Edit_opter_name.Text);               //经办人姓名
    json.S['inf_time'] := FormatDateTime('YYYY-MM-DD hh:nn:ss',now);  //交易时间
    json.S['fixmedins_code'] := Trim(Edit_fixmedins_code.Text);       //定点医药机构编号
    json.S['fixmedins_name'] := Trim(Edit_fixmedins_name.Text);       //定点医药机构名称
    json.S['sign_no'] := Trim(Edit_sign_no.Text);                     //交易签到流水号
    json.S['input'] := input;                                         //交易输入

    instr := json.AsString;

    Memo_in.Clear;
    Memo_in.Lines.Add(instr);
  finally
    json := nil;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  lvresult: Integer;
  instr,outstr,output: string;
  json: ISuperObject;
begin
  instr := Trim(Memo_in.Text);
  if instr ='' then
  begin
    ShowMessage('入参为空!');
    Exit;
  end;

  try
    lvresult := YBYWCL(instr, outstr);
    if lvresult =0 then
    begin
      Memo_out.Lines.Add(outstr);

      //解析json
      json := SO(outstr);
      try
        if json.S['infcode'] ='0' then  //成功
        begin
          output := json.S['output'];
        end
        else  //失败
        begin
          ShowMessage(json.S['err_msg']);
        end;
      finally
        json := nil;
      end;
    end
    else  
    begin
      ShowMessage(outstr);
    end;
  except
    on E: Exception do
    begin
      ShowMessage(e.Message);
    end;
  end;
end;

你可能感兴趣的:(delphi)