H5-jssdk接入说明

1.Sdk引入说明

在H5入口页面中引入yc-jssdk.js文件

<script src="https://www.icloudcity.com/open/js/yc-jssdk.js"></script>

2.Sdk使用说明

2.1.获取环境变量

在H5服务中,由云城APP进入到H5入口地址时,云城APP会在入口地址url之后自动拼接环境变量参数。H5服务的开发者可以使用sdk提供的功能性方法快速获取此url后拼接的环境变量参数。

参数 是否必有 描述
parkId true 园区编码
endpoint true 云城后台服务请求域名
title true 配置的子服务名称
test false 自定义环境变量,参数名可配置
// 如入口地址配置为 http://m.baidu.com, 自定义环境变量为test=custom
var params = yc.getParams(location.href);
// 获取到的环境变量如下:
{ 
  "parkId": "CN_SC_44_003_ZKNN", 
  "test": "custom", // 自定义变量
  "endpoint": "http://mcc.vanke.com/gardener-test-server/" 
}

2.2.页面跳转鉴权

H5服务可以在云城APP中调用sdk中的yc.getAuthLogin方法发起跳转鉴权。

参数 是否必填 说明
appId 开放平台颁发的appId
redirectUrl 鉴权后跳转地址
params 拼接参数
// 请求示例
var obj = {
   appId: '091102c4-7', // appId为云城开放平台申请服务颁发的appid
   redirectUrl: 'http://10.98.15.203:5500/index.html', // 鉴权后跳转地址即h5入口地址
   params:{}  // 跳转后拼接在target页面url地址后state = params
}

yc.getAuthLogin(obj)

// 鉴权后地址
// http://10.98.15.203:5500/index.html?scope=snsapi_base&code=wkYQqajVgtyDHfTS&state ={}&response_type=code#cloudcity_redirect

2.3.1获取access_token

说明:原则上不建议将APPKey即secret写入前端页面。

参数 是否必填 说明
appid 开放平台颁发的appId
secret 开放平台颁发的appSecret
code 鉴权后的获取的code
// 请求示例:
var params = { 
  appid: '091102c4-7', // appId为云城开放平台申请服务颁发的appid 
  secret: 'ed*******************84', // secret为云城开放平台申请服务颁发的APPKey
  code: 'hV85zJE4wc32SeHx' //code为鉴权后获取的code
}

yc.getAccessToken(params, callback)

//callback中回传结果
//成功示例:
{
  "ret": "0",
  "errorCode": null,
  "msg": "ok",
  "data": {
    "access_token": "05652988-5b6d-4400-bbcf-0b62482e104e",
    "refresh_token": {
      "value": "3aea1a1b-3747-47c1-9cde-dfe3ebeff099"
    },
    "expired": "false",
    "openid": "MDkxMTAyYzQtNwbba9cd68039ddbc0",
    "scope": "[\"app\"]",
    "expiration": "1547128449790", // access_token有效期截止时间戳
    "token_type": "bearer",
    "expires_in": "29232" // access_token有效期时长单位为s
  },
  "success": true
}

2.3.2.快速获取用户access_token

H5子服务在云城app中可调用sdk中的yc.getAccessTokenQuckily方法快速完成鉴权,并获取到access_token、openid,完成登录,此后可获取用户信息注意:此处获取到的返回结果为json字符串需要自行转换。

参数 是否必填 说明
appkey 开放平台颁发的appId
secret 开放平台颁发的appSecret
const params = { appkey: '9d67803145', secret: '******' };
yc.getAccessTokenQuckily(params, res => {
  // 注意此处的res返回的是一个json字符串
  console.log(res, '回调结果');
})

// 请求成功返回参数
{
  "msg":"请求成功",
  "data": {
    "access_token":"e1101**************ae735",
    "openid":"OWQ2****************d4"
  },
  "code":"0"
}

// 请求失败返回参数
{
  "msg":"请求失败",
  "data":{
    "access_token":"",
    "openid":""
  },
  "code":"-1"
}

2.4.获取用户信息

参数 是否必填 说明
access_token 获取到的access_token
openid 获取到的openid
// 请求示例
var params = {
  access_token: "05652988-5b6d-4400-bbcf-0b62482e104e",
  openid: "MDkxMTAyYzQtNwbba9cd68039ddbc0"
}

yc.getUserInfo(params, callback)

// callback中回传结果
// 成功示例:
{
  "ret": "0",
  "errorCode": null,
  "msg": "ok",
  "data": {
    "aliasName": "小星星",
    "openid": "MDkxMTAyYzQtNwbba9cd68039ddbc0",
    "headIconUrl": " http://oss-ydpt-a-szzb.oss-cn-shenzhen.aliyuncs.com/head/2018122815085a7081b15449fc88572220861d73fd.jpg?x-oss-process=image/resize ,w_200"
  },
  "success": true
}

2.5.调用云城app支付功能

参数名称 类型 是否必须 描述
merchantNo string true 商户号:指在云城注册颁发的商户号
tradeOrderNo string true 业务订单号,1-32位,只能为英文、数字、下划线
amount number true 订单金额(0.01-20000),最多2位小数
goodsDesc string true 商品描述,最多20个字符
expireTimeMinute number true 整数,订单过期时间,单位分钟,不低于5分钟,不高于1440分钟
goodsDesc string true 商品描述,最多20个字符
notifyUrl string false 支付回调的地址,支付完成后,会回调这个地址
orderRemark string false 订单备注,可以为null,最长50个字符
guaranteeType string fasle 交易担保类型:1、如果为空,则使用商户默认交易担保类型 2、如果不为空,则必须是‘PLATFORM_GUARANTEE’或者‘NON_GUARANTEE’二者中的一个。不区分大小写
orderSource string false 订单来源: 目前,【丰e足食】创建的订单需要传
yc.payOrder(
  {
    "merchantNo": "商户号",
    "tradeOrderNo": "业务订单号",
    "amount": "交易金额",
    "goodsDesc": "订单title",
    "expireTimeMinute": "支付超时时间",
    "notifyUrl": "支付回调",
    "orderRemark": "订单备注",
    "guaranteeType": "交易担保类型",
    "orderSource": "订单来源"
  },
  res => {
    // 请注意此处返回的数据为json字符串,返回结果见下方内容
    console.log(res);
  }
);

// 支付成功返回
{
    "code": "0(发起支付),-1(参数验证失败)",
    "msg": "支付提示(参数验证和支付完成都有)",
    "data": {
        "payStatus": "具体的支付状态:0(成功),-1(失败),-2(取消)",
        "payMsg": "支付完成时的提示",
        "requestParams": {
        "merchantNo": "商户号",
        "tradeOrderNo": "业务订单号""amount": "交易金额",
        "goodsDesc": "订单title",
        "expireTimeMinute": "支付超时时间",
        "notifyUrl": "支付回调",
        "orderRemark": "订单备注",
        "guaranteeType": "交易担保类型",
        " orderSource ": "订单来源"
    }
    }
}

2.6.查询订单信息

通过支付业务订单号及商户号查询对应支付的信息状态。

参数名称 类型 是否必须 描述
merchantNo string true 商户号:指在云城注册颁发的商户号
tradeOrderNo string true 业务订单号
yc.queryPayResult(
  {
    merchantNo: 'm********************5',
    tradeOrderNo: 'tral0*********6'
  },
  res => {
    // 请注意此处返回的数据为json字符串,返回结果见下方内容
    console.log(res);
  }
)

// 查询成功返回
{
    "msg": "查询支付结果成功", //提示信息:查询支付结果失败(成功)
    "code": "0",     //0(发起查询),-1(参数验证失败)
    "data": {        //查询的结果
        "res": 0,     //查询的结果:0查询成功,-1查询失败
        "requestParams": {        //请求的参数
            "tradeOrderNo": "TMarvin302", 
            "merchantNo": "MCH100001"
        }, 
        "payInfo": {        //查询的结果
            "merchantNo": "MCH100001",         //商户号
            "orderAmount": "0.01",             //订单金额
            "orderNo": "TMarvin302",         //业务订单号
            "orderSubject": "参加万科乐泡活动", //商品描述
            "payMethod": "ALIPAY",             //支付方式: WXPAY:微信支付、ALIPAY:支付宝支付
            "paymentAmount": "0.01",         //实际支付金额
            "paymentNo": "104608452226191360", //支付订单号
            "paymentTime": "20191016141230",     //订单支付时间    格式:yyyyMMddhhmmss
            "res": 0,                         //0(发起查询),-1(参数验证失败)
            "status": 1    //订单状态:0(待付款)、1(已付款)、2(部分退款)、3(已退款) 、4(支付失败) 、6(已撤销)
            "errMsg": ""                    //查询失败的信息
        }
    }
}

results matching ""

    No results matching ""