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 |
自定义环境变量,参数名可配置 |
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',
redirectUrl: 'http://10.98.15.203:5500/index.html',
params:{}
}
yc.getAuthLogin(obj)
2.3.1获取access_token
说明:原则上不建议将APPKey即secret写入前端页面。
参数 |
是否必填 |
说明 |
appid |
是 |
开放平台颁发的appId |
secret |
是 |
开放平台颁发的appSecret |
code |
是 |
鉴权后的获取的code |
var params = {
appid: '091102c4-7',
secret: 'ed*******************84',
code: 'hV85zJE4wc32SeHx'
}
yc.getAccessToken(params, 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",
"token_type": "bearer",
"expires_in": "29232"
},
"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 => {
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)
{
"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 => {
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 => {
console.log(res);
}
)
{
"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
"errMsg": ""
}
}
}