小程序网络请求转发服务

该接口用于小程序中进行业务数据前后端交互 。

由于小程序是在宿主App中的一个模块, 小程序中网络请求需要经过宿主App和宿主App后端服务进行请求转发,以实现App对小程序管控能力。 使用该接口的必须要先在小程序管理平台配置可访问的接口或者域名, 配置后才可访问成功,不在白名单中的域名或者api是无法通过小程序进行业务数据请求。

接口说明

接口名称:httpProxy

Dubbo调用:msHttpProxyService

接口描述:小程序网络请求转发服务。

入参

header通用参数

参考header通用参数

业务参数

字段名称 字段类型 字段描述 是否必须
api String 转发请求api, 该api必须通过进行转发请求白名单配置
data Object 请求参数
method String 请求转发方式,POST, GET
dataType String text,只支持text方式
encrypted String 加密方式, 暂无业务需要
responseType String 返回格式, json/text, 根据请求网站返回数据,请求网站header中Content-Type如果是application/json, 返回数据是json,其他都是string
miniAppCode String 小程序码

出参

字段名称 字段类型 字段描述 是否必须
response Object 返回数据
code String AAAAAA, 成功,其他 错误
msg String

response

字段名称 字段类型 字段描述 是否必须
statusCode int 标准http状态码, 200请求成功
returnCode Object 后台请求状态对象
data Object 请求数据
header Object 请求header

样例

dubbo协议接入:

请求url

http://localhost:9102/gw/hk_e_app/msHttpProxyService.do

请求数据格式:

{
  "request":{
      "header": {
          "appId": "3",
          "appVersion": "1.0",
          "ffVersion": "4.0",
          "transId": "httpProxy",
          "appExt": "1",
          "custType": "100",
          "signedMicroFlag": "0",
          "net": {
              "ip": "127.0.0.1",
              "netType": "WIFI_oa-test",
              "isp": "中国移动",
              "ssid": "oa-test",
              "lac": "4203",
              "cid": "10732931"
          },
          "device": {
              "osType": "03",
              "osVersion": "8.0.0",
              "brand": "samsung",
              "model": "SM-G9500",
              "uuid": "2e2bc2402301ea3e1e021362dd6b7a1e",
              "imei": "357052091333047",
              "mac": "00:9D:6B:32:00:24",
              "nfc": "1",
              "isRoot": "0",
              "imsi": "8986003915187a258429"
          },
          "reqSeq": "0"
      },
      "body": {
          "api":"http://127.0.01:8080/gw/hk_e_web/ShowMainBoard.do",
          "method":"POST",
          "data":{

          },
          "header":{

          },
          "responseType":"text",
          "encrypted":"false",
          "miniAppCode": "qHwgaSkXKx6tO4jc"
      }
  }
}

http协议接入:

请求url: http://localhost:8080/ffpaas/miniapp/httpProxy.json

请求数据格式:

{
     "request":{
        "header": {
            "appId": "3",
            "appVersion": "1.0",
            "ffVersion": "4.0",
            "transId": "httpProxy",
            "appExt": "1",
            "custType": "100",
            "signedMicroFlag": "0",
            "net": {
                "ip": "127.0.0.1",
                "netType": "WIFI_oa-test",
                "isp": "中国移动",
                "ssid": "oa-test",
                "lac": "4203",
                "cid": "10732931"
            },
            "device": {
                "osType": "03",
                "osVersion": "8.0.0",
                "brand": "samsung",
                "model": "SM-G9500",
                "uuid": "2e2bc2402301ea3e1e021362dd6b7a1e",
                "imei": "357052091333047",
                "mac": "00:9D:6B:32:00:24",
                "nfc": "1",
                "isRoot": "0",
                "imsi": "8986003915187a258429"
            },
            "reqSeq": "0"
        },
        "body": {
            "api":"http://127.0.01:8080/gw/hk_e_web/ShowMainBoard.do",
            "method":"POST",
            "data":{

            },
            "header":{

            },
            "responseType":"text",
            "encrypted":"false",
            "miniAppCode": "qHwgaSkXKx6tO4jc"
        }
    }
}

dsdl配置

节点配置

msHttpProxyService$applicationName,true

说明:

applicationName修改为应用

xml参数配置

  • 创建节点,节点名称为interface-mapping
  • 添加配置参数信息,如下
<?xml version="1.0" encoding="UTF-8"?>

<interface name="msHttpProxyService" description="http代理服务" auth="false">
    <configs>
        <config key="accessLog" value="false"/>
        <config key="transDataRecordMode" value="on"/>
        <config key="productId" value="ECommon"/>
    </configs>
    <input>
        <param name="api" description="请求地址" type="String" optional="false"/>
        <param name="method" description="请求方式" type="String" optional="false"/>
        <param name="data" description="数据" type="Map" optional="true"/>
        <param name="header" description="header" type="Map" optional="true"/>
        <param name="responseType" description="响应数据类型" type="String" optional="true"/>
        <param name="encrypted" description="是否加密" type="String" optional="true"/>
        <param name="miniAppCode" description="miniAppCode" type="String" optional="true"/>
    </input>
    <output>
        <param name="returnCode" description="处理结果" type="Map" optional="false">
            <param name="code" description="返回码" type="String" optional="false"/>
            <param name="message" description="返回信息" type="String"/>
            <param name="type" description="处理结果类型" type="String" optional="false"/>
        </param>
        <param name="data" type="Object"/>
        <param name="statusCode" type="int"/>
        <param name="header" type="Map"/>
    </output>
</interface>