zoukankan      html  css  js  c++  java
  • 使用ABAP代码生成二维码(QR Code)

    Previously we have discussed how to generate QRcode with SAP standard functionality:

    (1) Generate QRcode with ABAP Webdynpro
    (2) Generate QRcode with ABAP Code plus Adobe form template

    Both solutions will generate QRCode within a PDF file.

    If your requirement is to generate the QRCode in a picture file, you can use the solution described in this blog.

    There are lots of websites which provide free QRCode generation service. Just google it:

    I prefer to use this one http://www.qrstuff.com: just choose “Plain Text” and we can input some characters in Text field. There is a AJAX call which will generate QRCode immediately after some characters are typed.

    Now question is how we automate the character input via ABAP.

    I use Chrome to explore what has happened when we input some char in webpage. Click F12 to launch Chrome developer tool, input some char and observe the information displayed in the “Network” tab:

    The request URL is found: http://www.qrstuff.com/generate.generate
    The request method is GET.
    Also it is necessary to identify http form fields and they are also listed in Chrome:

    We need to copy all of those form fields into our ABAP code except preview=1, since we don’t need the preview functionality, we just need the generated png file.

    here below is the simple report to generate QRCode from hard coded string “testforQRCode”. ( The bold text are just copied from Chrome developer tool )
    The source code of zcl_http_tool could be found from attachment.

    DATA:ls_form   type zcl_http_tool=>ty_name_pair,
         lt_form   type zcl_http_tool=>tt_name_pair,
         lv_code   type xstring.
    ls_form = value #( name = 'type' value = 'TEXT' ).
    APPEND ls_form TO lt_form.
    ls_form = value #( name = 'foreground_color' value = '000000' ).
    APPEND ls_form TO lt_form.
    ls_form = value #( name = 'ecc_level' value = 'L' ).
    APPEND ls_form TO lt_form.
    ls_form = value #( name = 'width_pixels' value = '200' ).
    APPEND ls_form TO lt_form.
    ls_form = value #( name = 'dpi' value = '72' ).
    APPEND ls_form TO lt_form.
    ls_form = value #( name = 'file_type' value = 'png' ).
    APPEND ls_form TO lt_form.
    ls_form = value #( name = 'text' value = 'testforQRCode' ).
    APPEND ls_form TO lt_form.
    zcl_http_tool=>send_request( EXPORTING iv_url      = 'http://www.qrstuff.com/generate.generate'
                                           iv_req_type = if_http_request=>co_request_method_get
                                           it_form     = lt_form
    IMPORTING ev_response = lv_code ).
    

    And this is QRCode scanned from my mobile phone:

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    接口自动化(三)--读取json文件中的数据
    接口自动化(二)--操作Excel获取需要数据
    接口自动化(一)--概述
    pycharm(2016.3.2版本)导入工程文件执行程序时弹出Edit configuration
    使用Fiddler实现网络限速
    fiddler工具条、状态栏、请求信息栏各按钮的作用
    修改elementUI源码新增组件/修改组件
    DRF框架的基本组件
    django之原生SQL操作封装
    jqtree使用说明
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/13619784.html
Copyright © 2011-2022 走看看