{"id":8645,"date":"2022-08-19T09:01:31","date_gmt":"2022-08-19T01:01:31","guid":{"rendered":"https:\/\/www.hefeiyu.com\/?p=8645"},"modified":"2022-08-19T09:08:49","modified_gmt":"2022-08-19T01:08:49","slug":"tiptop%e8%b0%83%e7%94%a8webservice%e6%8e%a5%e5%8f%a3%e9%9c%80%e8%a6%81https%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88","status":"publish","type":"post","link":"https:\/\/www.hefeiyu.com\/?p=8645","title":{"rendered":"tiptop\u8c03\u7528webservice\u63a5\u53e3\u9700\u8981https\u89e3\u51b3\u65b9\u6848"},"content":{"rendered":"<p>\u516c\u53f8\u6700\u8fd1\u4f7f\u7528tiptop\u4e0e\u643a\u5ba2\u4e91\u5bf9\u63a5\uff0c\u643a\u5ba2\u4e91\u63d0\u4f9b\u7684\u63a5\u53e3\u65b9\u5f0f\u662fhttps\u7684\uff0c\u4f7f\u75284gl\u91cc\u9762\u7684\u63a5\u53e3\u8bed\u8a00\u76f4\u63a5\u8c03\u7528\u7684\u8bdd\u4f1a\u62a5\u9519\u201c<span style=\"color: #ff0000;\"><strong>Configuration needed to perform HTTPS connection<\/strong><\/span>\u201d\u7814\u7a76\u4e86\u5f88\u4e45\uff0c\u6ca1\u627e\u5230\u89e3\u51b3\u65b9\u6848\uff0c\u65e0\u5948\u66f2\u7ebf\u6551\u56fd\uff0c\u76f4\u63a5\u4f7f\u7528shell\u811a\u672cPOST json\u6570\u636e\uff0c\u53d1\u73b0\u7a0b\u5e8f\u66f4\u7b80\u6d01\uff0c\u8fd0\u884c\u6548\u7387\u66f4\u5feb\uff0c\u4e0b\u9762\u5bf9\u8fd9\u79cd\u8c03\u7528\u65b9\u5f0f\u505a\u4e00\u4e2a\u8be6\u7ec6\u8bf4\u660e:<\/p>\n<p>1\uff1agp\u9ed8\u8ba4\u662f\u4e0d\u652f\u6301json\u89e3\u6790\u7684\uff0c\u56e0\u4e3autil.so\u7248\u672c\u7684\u95ee\u9898\uff0c\uff0c\u521a\u597d\u770b\u5230\u9e4f\u54e5\u8bba\u575b\u7684\u6587\u7ae0\uff0c\u66f4\u65b0util.so\u5230\u65b0\u7248\u672c\uff0c\u89e3\u6790\u95ee\u9898\u89e3\u51b3\uff01<br \/>\n2:\u5199shell\u811a\u672c\uff0c\u8fd9\u91cc\u6211\u5199\u4e86\u4e00\u4e2a\u516c\u7528\u811a\u672c\uff0cgp\u4f7f\u7528\u7684\u65f6\u5019\u8c03\u7528\u811a\u672c\u5e76\u4f20\u5165json,\u5730\u5740\u53c2\u6570\uff0c\u5c31\u53ef\u4ee5\u7ec4\u6210\u9700\u8981\u6267\u884c\u7684\u811a\u672c\u6587\u4ef6\uff0c\u6700\u540e\u6267\u884c\u811a\u672c\u6587\u4ef6\uff0c\u8bf7\u6c42\u8fde\u63a5\u5e76\u83b7\u53d6response\u6570\u636e<br \/>\n\u811a\u672cgetxky.sh\u5185\u5bb9 echo &#8220;curl -i -X POST -H &#8216;Content-type&#8217;:&#8217;application\/json&#8217; -d &#8216;$1&#8217; $2&#8221;<br \/>\n3:\u7f16\u51994gl\u7a0b\u5e8f\u7a0b\u5e8f\u4e3b\u8981\u7684\u5185\u5bb9\u5c31\u662f(1):\u7ec4\u6210request\u7684json\u6587\u4ef6\uff1b(2)\uff1a\u8c03\u7528\u811a\u672c\u751f\u6210\u6267\u884cPOST\u7684\u811a\u672c\uff1b(3):\u6267\u884c\u811a\u672c\uff0c\u5e76\u5c06\u7ed3\u679c\u653e\u5728\u4e00\u4e2a\u4e34\u65f6\u6587\u672c\u4e2d,\u901a\u8fc7\u89c4\u5219\u8fc7\u6ee4\u6389\u65e0\u6548\u8f93\u51fa\uff0c\u53ea\u4fdd\u7559\u6709\u6548json\u6570\u636e\uff1b(4)\uff1a\u89e3\u6790\u6587\u672c\u4e2d\u7684json\u6570\u636e\uff0c\u5f97\u5230\u6570\u636e\u540e\u505a\u903b\u8f91\u5904\u7406<\/p>\n<p>util.so \u4e0b\u8f7d \u00a0<a href=\"http:\/\/www.hefeiyu.com\/wp-content\/uploads\/util.rar\">util.rar<\/a><\/p>\n<p>\u4ee5\u4e0b\u662f\u5b9e\u73b0\u4ee3\u7801(\u4ee3\u7801\u6765\u81ea\u7f51\u7edc\u3002\u672a\u7ecf\u6d4b\u8bd5)<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"null\">FUNCTION cws_xky_receiveTypes(erpCode,innerVendorCode,prodCodes)  #\u83b7\u53d6\u4f9b\u5e94\u5546\u4ea4\u8d27\u65b9\u5f0f\r\nDEFINE erpCode            LIKE zx_file.zx01,\r\n       innerVendorCode    LIKE type_file.chr100,\r\n       prodCodes          DYNAMIC ARRAY OF VARCHAR(40)\r\n#-------------------------------------\u5fc5\u8981\u53d8\u91cf\r\nDEFINE l_json_file    STRING,\r\n       l_json_sh      STRING,\r\n       l_json         STRING\r\nDEFINE jsonObj        util.JSONObject\r\nDEFINE jsondata       TEXT\r\nDEFINE l_jsonString   STRING\r\nDEFINE l_cmd          STRING \r\n#-------------------------------------\u5fc5\u8981\u53d8\u91cf\r\n#----------------request\u6570\u636e\r\nDEFINE i             INTEGER\r\nDEFINE l_json_rec    RECORD\r\n\tcommonParam  RECORD \r\n\t appKey      VARCHAR(40),\r\n\t version     VARCHAR(10),\r\n\t ownerCompanyCode   VARCHAR(40),\r\n\t operateCompanyCode VARCHAR(40),\r\n\t sign               VARCHAR(40),\r\n\t timestamps         INTEGER\r\n\t          END RECORD,\r\n\tbody         RECORD\r\n\t  erpCode          VARCHAR(40),\r\n\t  innerVendorCode  VARCHAR(40),\r\n\t  prodCodes        DYNAMIC ARRAY OF VARCHAR(40)\r\n\t        END RECORD\r\n\t\t   END RECORD\r\n#----------------request\u6570\u636e\r\n#---------------response\u6570\u636e\r\nDEFINE  receiveTypes  RECORD\r\n\tresult       INTEGER,   #\u6210\u529f=1\uff0c\u5931\u8d25=9\r\n\t  dataList     DYNAMIC ARRAY of  RECORD\r\n\t    productCode       VARCHAR(40),  #\u6599\u53f7\r\n\t    innerVendorCode   VARCHAR(40),  #\u4f9b\u5e94\u5546\r\n\t    receiveType       INTEGER      #\u4ea4\u8d27\u65b9\u5f0f  1\uff1a\u6309\u8ba2\u5355\uff0c2\uff1a\u6309\u6392\u671f\r\n\t  END  RECORD\r\n\tEND  RECORD\r\n#---------------response\u6570\u636e\r\n\r\n\r\nLET l_json_sh = \"\/u1\/tmp_dir\/json\/\",innerVendorCode CLIPPED,\".sh\"     #-----\u6267\u884c\u53d1\u9001\u7684\u811a\u672c\r\nLET l_json_file = \"\/u1\/tmp_dir\/json\/\",innerVendorCode CLIPPED,\".txt\"  #-----\u83b7\u53d6\u5230\u7684\u6570\u636e\r\nLET l_json = \"\/u1\/tmp_dir\/json\/\",innerVendorCode CLIPPED,\".json\"      #\u83b7\u53d6\u5230\u7684json\u683c\u5f0f\u6570\u636e\r\n\r\nCALL cws_xky_get_defluat(\"receiveTypes\") RETURNING g_common.*,g_address   #\u83b7\u53d6\u534f\u5ba2\u4e91\u53c2\u6570\u4fe1\u606f\r\n#-------------------\u8d4b\u503c  begin\r\nLET l_json_rec.commonParam.appKey   = g_common.appKey\r\nLET l_json_rec.commonParam.version  = g_common.version\r\nLET l_json_rec.commonParam.ownerCompanyCode = g_common.ownerCompanyCode\r\nLET l_json_rec.commonParam.operateCompanyCode = g_common.operateCompanyCode\r\nLET l_json_rec.commonParam.sign = g_common.sign\r\nLET l_json_rec.commonParam.timestamps = g_common.timestamps\r\n\r\nLET l_json_rec.body.erpCode = erpCode\r\nLET l_json_rec.body.innerVendorCode = innerVendorCode\r\n\r\nFOR i =1 to prodCodes.getlength()\r\nLET l_json_rec.body.prodCodes[i] = prodCodes[i]\r\nEND FOR\r\n\r\n#------------------\u8d4b\u503c  END \r\n\r\nLET jsonObj = util.JSONObject.fromFGL(l_json_rec)  #\u5c06FGL\u6570\u636e\u8f6c\u6362\u6210json\r\nLET l_jsonString  =  jsonObj.toString()   #\u83b7\u53d6json\u4e32 \r\n\r\nLET l_cmd = \"sh \/u1\/tmp_dir\/json\/getxky.sh '\",l_jsonString,\"' '\",g_address,\"' &gt;\",l_json_sh   #\u8c03\u7528\u811a\u672c\u751f\u6210\u6267\u884c\u811a\u672c\uff08\u5176\u5b9e\u76f4\u63a5\u5728\u7a0b\u5e8f\u7ec4\u6210\u4e5f\u53ef\u4ee5\uff09\r\nRUN l_cmd\r\n\r\nLET l_cmd = \"chmod 777 \",l_json_sh   #\u66f4\u65b0\u6743\u9650\r\nRUN l_cmd\r\n\r\nLET l_cmd =\"sh \",l_json_sh,\" &gt; \",l_json_file   #\u6267\u884c\u811a\u672c\uff0c\u5e76\u5c06\u7ed3\u679c\u5199\u5165\u6587\u4ef6\r\nRUN l_cmd \r\n\r\nLET l_cmd = \"sed -n '$p'  \",l_json_file,\" &gt; \",l_json   #\u83b7\u53d6\u7eaf\u6b63json\u6587\u4ef6\uff08\u6839\u636e\u5b9e\u9645\u6570\u636e\u5904\u7406\uff0c\u6211\u8fd9\u91ccjson\u6570\u636e\u5728\u6700\u540e\u4e00\u884c\uff09\r\nRUN l_cmd \r\n\r\n#2:\u89e3\u6790\u6570\u636e\r\n#--------------json\u89e3\u6790  begin\r\nLOCATE jsondata IN FILE l_json  #\u76f4\u63a5\u6293\u53d6\u6587\u4ef6\r\nTRY\r\nLET jsonObj = util.JSONObject.parse(jsondata)\r\nCALL jsonObj.toFGL(receiveTypes)   #\u8f6c\u5316\u6210\u6570\u636e\r\nCATCH\r\nDISPLAY \"ERROR:\", STATUS   \r\nEND TRY\r\n#---------------json\u89e3\u6790 END \r\n\r\n#--------------\u505a\u6570\u636e\u5904\u7406\r\n\r\n#--------------\u505a\u6570\u636e\u5904\u7406\r\n\r\nEND FUNCTION \r\n<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>\u8f6c\u8f7d\u8bf7\u6ce8\u660e\uff1a<a href=\"https:\/\/www.hefeiyu.com\">\u8d6b\u975e\u57df<\/a> &raquo; <a href=\"https:\/\/www.hefeiyu.com\/?p=8645\">tiptop\u8c03\u7528webservice\u63a5\u53e3\u9700\u8981https\u89e3\u51b3\u65b9\u6848<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>\u516c\u53f8\u6700\u8fd1\u4f7f\u7528tiptop\u4e0e\u643a\u5ba2\u4e91\u5bf9\u63a5\uff0c\u643a\u5ba2\u4e91\u63d0\u4f9b\u7684\u63a5\u53e3\u65b9\u5f0f\u662fhttps\u7684\uff0c\u4f7f\u75284gl\u91cc\u9762\u7684\u63a5\u53e3\u8bed\u8a00\u76f4\u63a5\u8c03\u7528\u7684\u8bdd\u4f1a\u62a5\u9519\u201cConfiguration needed to perform HTTPS connection\u201d\u7814\u7a76\u4e86\u5f88\u4e45\uff0c\u6ca1\u627e\u5230\u89e3\u51b3\u65b9\u6848\uff0c\u65e0\u5948\u66f2 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[490,26],"tags":[1075,770,1076],"class_list":["post-8645","post","type-post","status-publish","format-standard","hentry","category-490","category-4gl","tag-https","tag-json","tag-1076"],"_links":{"self":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts\/8645","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8645"}],"version-history":[{"count":4,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts\/8645\/revisions"}],"predecessor-version":[{"id":8649,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts\/8645\/revisions\/8649"}],"wp:attachment":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8645"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8645"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}