my.getrundata(object object)
基础库 或更高版本; 且 支付宝客户端 10.1.60 或更高版本; 若版本较低,建议采取 兼容处理 。
小程序开发者工具: 不支持。请使用真机调试。
主体: 企业支付宝小程序
获取用户指定自然天内运动步数。
目前只支持查询最近 30 天内的运动步数,若超过 30 天,则返回的步数为 0。
获取运动数据
是否必须: 是。
加密: 设置 接口内容加密方式 (可参考文档接口内容加密方式)。
加签: 如需验证内容的真实性,可进一步设置接口加签方式: 设置 接口加签方式 (可参考文档接口加签方式)。
未设置接口加密方式而直接调用 my.getrundata
,将得到异常响应“缺少加密配置”(code 40001),可点此查看示例:未配置接口内容加签方式。
是否必须: 是。
-
需要在 列表中,为当前小程序开通 运动数据 产品。
-
在开放平台——控制台——隐私申请——运动数据(需登录主账号或管理员账号进行操作),申请 运动数据。如图
如果
申请使用
按钮为灰色,请对照 隐私申请及使用基础规则 检查小程序的主营行业设置
未开通 运送数据 产品或未通过运动数据申请直接调用 my.getrundata,解密后将得到异常响应“isv 权限不足”(code 40006), 可点此查看示例:未开通产品/未申请运动数据。
是否必须: 是。
调用my.getrundata
获取加密后的报文数据。
是否必须: 是。
将my.getrundata
success 回调参数 response 密文发送给服务端,参考
接口内容加密方式 进行验签解密。
如果前面步骤未正确完成,报错信息也会在解密步骤完成后才能看到,可点此查看示例: 解密失败的返回值。
如果一切正常,解密后可获取运动步数,可点此查看示例: 解密成功的返回值。
object object
查看示例
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
countdate | string | - | 是 | 要查询的步数日期( |
success | function | - | 否 | 调用成功的回调函数 |
fail | function | - | 否 | 调用失败的回调函数 |
complete | function | - | 否 | 调用结束的回调函数(调用成功、失败都会执行) |
success 回调函数
参数
object res
属性 | 类型 | 描述 |
---|---|---|
response | string | object |
|
加密 response 返回异常报错信息 以及 服务端解密异常报错信息。 可参考 服务端解密异常。
错误码 | 说明 | 凯发app官方网站的解决方案 |
---|---|---|
20000 | 系统繁忙 | 可提示用户“稍后再试”。 |
40001 | 缺少加密配置 | 调用my.getrundata 之前,需完成接口内容加密方式的配置: 进入 配置 接口内容加密方式 。详见:接口内容加密方式 |
40001 | 应用未设置默认签名类型 | 重新保存下开发者的密钥,或者设置下小程序的应用网关地址。 |
40002 | 加密异常。 | 参考文档:接口内容加密方式,重新设置接口内容加密方式。 |
40006 | isv 权限不足,建议在开发者中心检查签约是否已经生效。 |
fail 回调的参数为 object,error 属性为错误码,errormessage 属性为错误消息。可参考 fail 回调参数
错误码 | 说明 | 凯发app官方网站的解决方案 |
---|---|---|
2 | 接口参数无效 | 请检查入参是否正确传入。 |
1003 | 未授权支付宝应用计步权限 | 为用户拒绝计步授权,无需进行特殊处理。 |
1005 | 用户未开通支付宝运动功能 | 引导用户按照以下步骤开通:支付宝 app 凯发k8官方网娱乐官方首页 更多 进入到应用中心页面,找到 教育公益 下 运动,按照页面指引,点击 同意协议并允许授权 即可。 |
my.getrundata ({
// 替换为最近三十天内某一天的日期
countdate: '2022-06-27',
fail: res => {
console.log (res);
},
success: res => {
console.log (res);
},
complete: res => {
console.log (res);
},
});
my.getrundata ({
// 替换为最近三十天内某一天的日期
countdate: '2022-06-27',
fail: res => {
console.log ('get pedometer encrypted fail:' json.stringify (res));
},
success: res => {
console.log ('get pedometer encrypted success:' json.stringify (res));
// 如果 response 为 string 类型 则为加密报文,将此密文传给服务端进行解密;
// 如果 response 为 object 类型且抛出异常信息,则为加密异常,根据错误码部分说明进行排查;
const {response = ''} = res;
if (typeof response === 'string') {
my.request ({
// 替换为开发者自己的服务端接口进行解密
url: 'http://www.telmo.cn/gateway/decrypt',
data: {
encryptcontent: response,
},
success: function (res) {
console.log ('decrypt pedometer success:' json.stringify (res));
},
fail: function (res) {
console.log ('decrypt pedometer fail:' json.stringify (res));
},
});
} else {
// 根据错误信息进行排查
my.alert ({message: json.stringify (response)});
}
},
complete: res => {
console.log ('getrundata complete:' json.stringify (res));
},
});
{
"response": "kgpqycs1wqnmihr11mliiz7owm6qkzmq5vwkdpzclmi1n3gwwvgodq2u1vllfznlhf0ttjnakp7qpfzanklzcntsgoi03ywgmhtnkrl0p64dyrgmuifreredykhmkyvvufjxcxzkwpmcwsffwp9pmi7pojbxfhxzqu7kna8fdl3flwog7sciz6c81vgsclltqlqzrw8w3b/o3eojjch3ox/s/of6ztfrgzkjfx6nfydgyjfjnvhlgelvwfvkl7cr5omqgzfjjel8akx /ocwalcd/wjo1qq47ex7lfael72bykwmuvspwl/mhsdcerq8/gsj4yzwhfoj/xngb6a4xqv8ryxes08dwfpftvfrojqvuxpe2puwrntz33voqzuimvdnpp3deu5wjtcdz7qvjg==",
"sign": "hcjnqtandkjcvebtbtj4asf xtkse8v8j2fybnwr9krooa zqpwcvtpdmszgkyrzwwdzrwxhxghzzk/sdc7odkvy3fjchqj7jpnib8sjkxbqevxkoqi4s85/gapylm91kw654/gzg 24ostnnprh9bux7cbbulmgoo6yj5l0s9ulwepehbxk5jbsrkfptoz030h5z2wpcubhoaubpvqaraareup/dr/bsz0seymt9otjqwhsl7nwmjicunb7ecgzprcrgzouknk zxm2l7q n/dcmhkqkjywlx/47osoaickgc5b7eiuyc57v407eq0udmoiahwlmydnasjyihbu6g=="
}
此种情况,response 值为 经过加密的指定日期的步数数据,需要通过 my.request 传给服务端进行解密。
{
"error": 1003,
"errormessage": "未授权支付宝应用计步权限"
}
{
"response": {
"code": "40001",
"msg": "missing required arguments",
"subcode": "isv.missing-encrypt-key",
"submsg": "缺少加密配置"
},
"sign": "hcjnqtandkjcvebtbtj4asf xtkse8v8j2fybnwr9krooa zqpwcvtpdmszgkyrzwwdzrwxhxghzzk/sdc7odkvy3fjchqj7jpnib8sjkxbqevxkoqi4s85/gapylm91kw654/gzg 24ostnnprh9bux7cbbulmgoo6yj5l0s9ulwepehbxk5jbsrkfptoz030h5z2wpcubhoaubpvqaraareup/dr/bsz0seymt9otjqwhsl7nwmjicunb7ecgzprcrgzouknk zxm2l7q n/dcmhkqkjywlx/47osoaickgc5b7eiuyc57v407eq0udmoiahwlmydnasjyihbu6g=="
}
{
"count": 16880,
"countdate": "2018-12-19",
"code": "10000",
"msg": "success"
}
解密成功后的值,不直接对前端可见。服务端使用 sdk 解密后,需要再将解密后的信息传递前端。
{
"code": "40006",
"msg": "insufficient permissions",
"subcode": "isv.insufficient-isv-permissions",
"submsg": "isv权限不足,建议开发者检查对应功能是否已经开通,解决办法详见:https://docs.open.alipay.com/common/isverror"
}
此种异常情况,错误信息不直接对前端可见,前端将 success 回调函数参数中 response 字段,通过网络请求传递给服务端。 服务端使用 sdk 解密后,再将解密后的信息传递前端。
{
"code": "40002",
"msg": "invalid arguments",
"subcode": "isv.invalid-encrypt",
"submsg": "加密异常"
}
此种异常情况,错误信息不直接对前端可见,前端将 success 回调函数参数中 response 字段,通过网络请求传递给服务端。 服务端使用 sdk 解密后,再将解密后的信息传递前端。
-
tip需要在手机的运动健康中关联支付宝。否则若全天都没有打开支付宝,就获取不到这一天的步数。