H5子服务可调用能力

在H5的子服务的开发过程中,云城app也提供了一些可以方便使用的设备能力供子服务开发者调用。

1.1.调用三方微信支付宝支付

云城app中支持h5调用三方支付,完成h5支付功能。现已支持支付宝及微信支付,具体支付处理逻辑由h5子服务自身实现。
说明:

  1. 支付宝h5支付请按照支付宝官方开发文档进行接入即可。

  2. 微信h5支付请按照微信官方开发文档接入,并在h5子服务版本发布的入口地址填写时拼接上 referer="h5子服务于微信开放平台商户申请H5时提交的授权域名",云城app已按照微信官方开发文档介绍于webview中调用微信h5支付时,将会自动配置Referer请求头。微信h5支付后,iOS回调自动打开浏览器加载回调页面未跳回云城app,详细解决办法可参考F.A.Q

referer

1.2.拨打电话

云城app实现了标准的h5拨打电话功能,在h5页面中想要调用手机的拨号功能,只需按照h5标准书写即可。如:

<a href="tel:10086">致电中国移动</a>

2云城支付

调用方法名:payOrder

2.1 入参
{
"merchantNo": "商户号",商户号:指在云城注册颁发的商户号
"tradeOrderNo": "业务订单号",业务订单号,1-32位,只能为英文、数字、下划线
"amount": "交易金额",订单金额(0.01-20000),保留2位小数
"goodsDesc": "订单title",商品描述,最多20个字符
"expireTimeMinute": "支付超时时间",整数,订单过期时间,单位分钟,不低于5分钟,不高于1440分钟
"notifyUrl": "支付回调",支付回调的地址,支付完成后,会回调这个地址//不是必填
"orderRemark": "订单备注",订单备注,可以为null,最长50个字符//不是必填
"guaranteeType": "交易担保类型",交易担保类型
1、如果为空,则使用商户默认交易担保类型
2、如果不为空,则必须是‘PLATFORM_GUARANTEE’或者‘NON_GUARANTEE’二者中的一个。不区分大小写//不是必填
"orderSource": "订单来源"订单来源目前,【丰e足食】创建的订单需要传//不是必填
}
参数 类型 说明
merchantNo 商户号
tradeOrderNo 业务订单号,1-32位,只能为英文、数字、下划线
amount 订单金额(0.01-20000),保留2位小数
goodsDesc 商品描述,最多20个字符
expireTimeMinute 整数 订单过期时间,单位分钟,不低于5分钟,不高于1440分钟
notifyUrl 支付回调的地址,支付完成后,会回调这个地址//不是必填
orderRemark 订单备注,可以为null,最长50个字符//不是必填
guaranteeType 交易担保类型 1、如果为空,则使用商户默认交易担保类型2、如果不为空,则必须是‘PLATFORM_GUARANTEE’或者‘NON_GUARANTEE’二者中的一个。不区分大小写//不是必填
orderSource 订单来源目前,【丰e足食】创建的订单需要传//不是必填
2.2 出参 方法名:payResult
{
"code": "0(发起支付),-1(参数验证失败)",
"msg": "支付提示(参数验证和支付完成都有)",
"data": {
    "payStatus": "具体的支付状态:0(成功),-1(失败),-2(取消)",
    "payMsg": "支付完成时的提示",
    "requestParams": {
    "merchantNo": "商户号",
    "tradeOrderNo": "业务订单号",
    "amount": "交易金额",
    "goodsDesc": "订单title",
    "expireTimeMinute": "支付超时时间",
    "notifyUrl": "支付回调",
    "orderRemark": "订单备注",
    "guaranteeType": "交易担保类型",
    " orderSource ": "订单来源"
}
}
}
参数 类型 说明
payStatus 0(成功),-1(失败),-2(取消)
payMsg 支付完成时的提示
requestParams 订单详情
merchantNo 商户号
tradeOrderNo 业务订单号
amount 交易金额
goodsDesc 订单title
expireTimeMinute 支付超时时间
notifyUrl 支付回调
orderRemark 订单备注
guaranteeType 交易担保类型
orderSource 订单来源

3.公共能力

云城app除了对应给子服务提供设备能力以外,还具有自身的平台能力,按照平台能力的调用规则,即可使用云城对应的平台能力。

3.1.卡片消息跳转对应子服务

此能力关联REST接口服务号向用户推送消息,按照接口描述调用,用户可以收到对应的卡片消息推送如下:

点击卡片消息可以跳转到对应的子服务入口页(参考:服务创建&发布下的版本发布)中,如按照推送消息示例中参数进行接口调用,现关注route字段中的value值,由path开始为向子服务中传递的三个参数:path, mobilePhone, name

"route": {
    // iCloudCity://为固定内容,其后跟服务类型如 weex或web,其后跟子服务APPID,即上方appkey的值
    // 其后按序列化字符串拼接所需传递的参数,然后在子服务中进行对应的解析
    "value": "iCloudCity://weex/dae4245d-3/path=index.js&mobilePhone=13530986300&name=zs"
  }

可以看到如下图在子服务中可以通过解析url值获取到通过卡片消息传递进来的参数及服务自带的环境变量参数,由此子服务开发者可以通过获取到的不同参数来做对应的处理,如跳转进入次级页面,调用子服务中的其他功能等。

4.获取子服务的token、openid、refreshToken

调用方法名:getServiceTokenInfo

4.1 入参
json
{"appkey":"appkey"}
参数 类型 说明
appkey app的key
4.2 出参 方法名:serviceTokenInfoResult
    json

    {
    "access_token":"fdfsfs3242"
    "refresh_token":"fdsfsdfsdfs"
    "openid":"fdsfsdfsdfsdfs"
    }

5 开始定位,持续定位

调用方法名:startLocation

5.1 入参
5.2 出参
方法名(注意:这里回调方法名Android和iOS不一致)
平台 方法名
Android locationResult
iOS getLocationS
    {
    "latitude":"324434.22"
    "longitude":"123132.33"
    "altitude":"高度"
    "address":"位置"
    "country":"国家"
    "province":"省"
    "city":"城市"
    "district":"城区-南山区"
    "street":"街道-高新南十道"
    "number":"街道门牌号"
    "POIName":"当前位置的POI名称"
    "AOIName":"当前位置所处AOI名称"
    "citycode" :"城市编码"
    }
参数 类型 说明
latitude 纬度
longitude 经度
address 目标地址名称
country 国家
province
city 城市
district 城区-南山区
street 街道-高新南十道
number 街道门牌号
POIName 当前位置的POI名称
AOIName 当前位置所处AOI名称
citycode 城市编码

6.结束定位

调用方法名:stopLocation

6.1 入参
6.2 出参 方法名:serviceTokenInfoResult

7.获取一次定位,返回立即关闭定位

调用方法名:getLocation

7.1 入参
7.2 出参
方法名(注意:这里回调方法名Android和iOS不一致)
平台 方法名
Android locationResult
iOS getLocationS
    {
    "latitude":"324434.22"
    "longitude":"123132.33"
    "altitude":"高度"
    "address":"位置"
    "country":"国家"
    "province":"省"
    "city":"城市"
    "district":"城区-南山区"
    "street":"街道-高新南十道"
    "number":"街道门牌号"
    "POIName":"当前位置的POI名称"
    "AOIName":"当前位置所处AOI名称"
    "citycode" :"城市编码"
    }
参数 类型 说明
latitude 纬度
longitude 经度
address 目标地址名称
country 国家
province
city 城市
district 城区-南山区
street 街道-高新南十道
number 街道门牌号
POIName 当前位置的POI名称
AOIName 当前位置所处AOI名称
citycode 城市编码

查询支付结果

调用方法名:queryPayResult

8.1 入参
{
"merchantNo": "商户号:指在云城注册颁发的商户号",
"tradeOrderNo": "业务订单号"
}
参数 类型 说明
merchantNo 商户号:指在云城注册颁发的商户号
tradeOrderNo 业务订单号
8.2 出参 方法名:queryPayCallback
{
"msg": "查询支付结果成功", 
"code": "0", 
"data": {
    "res": 0, 
    "requestParams": {
        "tradeOrderNo": "TMarvin302", 
        "merchantNo": "MCH100001"
    }, 
    "payInfo": {
        "merchantNo": "MCH100001", 
        "orderAmount": "0.01", 
        "orderNo": "TMarvin302", 
        "orderSubject": "参加万科乐泡活动", 
        "payMethod": "ALIPAY", 
        "paymentAmount": "0.01", 
        "paymentNo": "104608452226191360", 
        "paymentTime": "20191016141230", 
        "res": 0, 
        "status": 1
    }
}
}
参数 类型 说明
merchantNo 商户号:指在云城注册颁发的商户号
tradeOrderNo 业务订单号
payInfo 支付详情
orderAmount 金额
orderNo 订单编号
orderSubject 订单名称
payMethod 调用银行卡支付,需配置此参数,参与签名, 固定值 (需要签约《无线银行卡快捷支付》才能使用)
paymentAmount 支付金额
paymentNo 支付号
paymentTime 支付时间

9.扫码和识别本地二维码

调用方法名:.scanQRCode

9.1 入参
9.2 出参 方法名:onScanCallback
   {
       res = 1;
       result = "http://icloudcityuat.vanke.com/gardener-test-server/platformservice/qrCodeInfo/v2/qrcode?codeType=icloudcityApi&code=d5024d79689840fbadc239fa9ffddbb0";
   }

    {
       "msg": "扫码成功、扫码失败、扫码取消",
       "code": "0、1、-1",
       "data": {
            "result": "扫码结果内容",
       }
  }
参数 类型 说明
result 扫码结果内容

10.地图导航

调用方法名:gotoMap

10.1 入参
{"latitude":"12313.44"
"longitude":"34234.33"
"address":"长江"}
参数 类型 说明
latitude 纬度
longitude 经度
address 目标地址名称
10.2 出参

11.获取园区信息接口

调用方法名:getParkInfo

11.1 入参
11.2 出参 方法名:ycAppClickBack
{"parkCode":"园区id"}
参数 类型 说明
parkCode 园区id

12云城分享

调用方法名:ycMiniProgramShare

12.1 入参
{
    shareContent:
   [{ 
        "type":"1" 3 为微信好友,4 为微信朋友圈,1 为IM好友,2 为园圈
        "title": "标题"
        "desc":"描述"
        "thumbPicUrl":"缩略图(http开头的图片地址)"
        "webPageUrl":"跳转地址"
        "shareType":"trade"目前支持的类型trade(商圈), active(活动),service(子服务),shop_web(商家拼团),common_web(跳到普通网页),indoor_nav(室内导航)
        "serviceType":"标签名称"
    }]
}
参数 类型 说明
type 3 为微信好友,4 为微信朋友圈,1 为IM好友,2 为园圈
title 标题
desc 描述
thumbPicUrl 缩略图(http开头的图片地址)
webPageUrl 跳转地址
shareType trade"目前支持的类型trade(商圈), active(活动),service(子服务),shop_web(商家拼团),common_web(跳到普通网页),indoor_nav(室内导航)
serviceType 标签名称
12.2 出参

13.获取当前园区的经纬度

调用方法名:getParkLocation

13.1 入参
13.2 出参 方法名: ycAppClickBack
{"code" : "0" , "msg" : "请求成功", "data" : {"latitude":"12313.44"
"longitude":"34234.33"}}

14设置当前页面是否可以截屏

调用方法名:setScreenShotAction

14.1 入参
{"isBanScreenshot":"1/0"}
参数 类型 说明
isBanScreenshot 1截屏0不截屏
14.2 出参 方法名: setScreenShotActionResult
{"code" : "0" , "msg" : "请求成功", "data" : {}}

15.发送邮件

调用方法名:sendToEmail

15.1 入参
{"mailAddress":"3242424323@qq.com",
"subject":"标题",
"content":"内容"}
参数 类型 说明
mailAddress 目的邮件地址
subject 标题
content 内容
15.2 出参 方法名: sendToEmailResult
返回是否成功

results matching ""

    No results matching ""