MD5加密接口

签名算法
app_key和app_secret由对方系统提供
在这里插入图片描述
MD5_CALCULATE_HASH_FOR_CHAR(中文加密与JAVA不一致)
代码:

*获取传输字段名的ASCII码,根据ASCII码对字段名进行排序

    SELECT * FROM zthr0051
      WHERE  functionid = @iv_functionid
     INTO CORRESPONDING FIELDS OF TABLE @et_sort.

    LOOP AT et_sort INTO DATA(es_sort).
      es_sort-ascii = cl_abap_conv_out_ce=>uccpi( es_sort-f_json ).
      MODIFY et_sort FROM es_sort.
      CLEAR:es_sort.
    ENDLOOP.
    SORT et_sort BY ascii.
    
*接口参数赋值
    gs_per_input-timestamp = gv_timestamp+0(10).
    gs_per_input-app_key = ls_zthr0167-zkey.
    gs_per_input-person_no = gs_out_pernr-personid_ext.
    gs_per_input-name      = gs_out_pernr-ename.
    IF gs_out_pernr-sex = '1'.
      gs_per_input-gender = 'MAN'.
    ELSEIF  gs_out_pernr-sex = '2'.
      gs_per_input-gender = 'WOMEN'.
    ELSEIF  gs_out_pernr-sex = '其他'.
      gs_per_input-gender = 'OTHER'.
    ENDIF.
    gs_per_input-phone = gs_per_input-phone.
    gs_per_input-card_department_group_id = gs_out_pernr-department_id.
    
 *参数拼接
      LOOP AT gt_sort001 ASSIGNING FIELD-SYMBOL(<fs_sort001>) WHERE f_abap <> 'SIGNATURE'.
        ASSIGN COMPONENT <fs_sort001>-f_ABAP OF STRUCTURE gs_per_input TO <field>.
        IF <field> IS NOT INITIAL.
          lv_input = lv_input && <fs_sort001>-f_json && '=' && <field> && '&'.
        ENDIF.
        AT LAST.
          lv_input = lv_input && 'key=' && ls_zthr0167-secret.
        ENDAT.
      ENDLOOP.
*对拼接后的值进行MD5加密后的值放在接口参数中,并转换为大写,传输
    CALL FUNCTION 'ZFM_GET_MD5'
      EXPORTING
        iv_string = lv_input
      IMPORTING
        ev_md5    = gs_per_input-signature.
    TRANSLATE gs_per_input-signature TO UPPER  CASE.

MD5加密参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值