创新互联百度小程序教程:swan.getSwanId

  • swan.getSwanId
    • 方法参数
      • object 参数说明
      • success 返回参数说明
    • 示例
      • 图片示例
      • 代码示例
    • signature 计算方法
    • 错误码
      • Android
      • iOS

    swan.getSwanId

    解释:由于宿主应用并不一定强制用户登录,因此用户也有可能处于未登录状态。此时开发者可能不希望通过实现登录强制用户登录,而是希望直接使用用户的设备标识来关联用户,存储一些非敏感的数据。因此智能小程序提供了一个swanid的标识,开发者可将其视作用户的设备标识,swanid的机制说明如下:

    • 用户在同一台设备上使用同一个开发者所开发的不同智能小程序,得到的是相同的 swanid ;
    • 用户在同一台设备上使用不同开发者所开发的不同智能小程序,得到的 swanid 是不同的。

    开发者可通过swan.getSwanId()方法:

    • 获取 swanid ,swanid 长度不超过 100 个字符;
    • 获取 swanid _signature ,并可通过对比该值与采用 signature 计算方法得到的计算值是否一致来判断 swanid 是否有效。

    方法参数

    Object object

    object 参数说明

    属性名 类型 必填 默认值 说明
    successFunction接口调用成功的回调函数
    failFunction接口调用失败的回调函数
    completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

    success 返回参数说明

    参数 类型 说明
    errnoStringerrno
    dataObject{swanid}

    示例

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

    扫码体验

    代码示例

    请使用百度APP扫码

    图片示例

    代码示例

    • SWAN
    • JS
     
     
     
    1. {{item.key}}
    2. {{item.value}}
     
     
     
    1. Page({
    2. data: {
    3. infoList: [{
    4. key: 'swanid',
    5. value: ''
    6. }, {
    7. key: 'swanid_old',
    8. value: ''
    9. }, {
    10. key: 'swanid_old_signature',
    11. value: ''
    12. }, {
    13. key: 'swanid_signature',
    14. value: ''
    15. }]
    16. },
    17. getSwanId(e) {
    18. swan.getSwanId({
    19. success: res => {
    20. console.log('res', res.data);
    21. // 更新数据
    22. this.updateInfoList(res.data);
    23. },
    24. fail: err => {
    25. swan.showToast({
    26. title: '获取失败'
    27. });
    28. }
    29. });
    30. },
    31. clearSwanId() {
    32. this.updateInfoList({});
    33. },
    34. updateInfoList(res) {
    35. let infoList = this.getData('infoList');
    36. for (let i = 0; i < infoList.length; ++i) {
    37. if (res[infoList[i].key] === '') {
    38. infoList[i].value = '暂无';
    39. }
    40. else {
    41. infoList[i].value = res[infoList[i].key];
    42. }
    43. }
    44. this.setData('infoList', infoList);
    45. }
    46. });

    signature 计算方法

    • GOLANG
    • PHP
     
     
     
    1. /**
    2. * 生成签名
    3. * appkey 小程序标识
    4. * secret_key 小程序私钥
    5. * swanid 用户swanid
    6. */
    7. func generageSignature(appKey, secrectKey, swanID string) string {
    8. plainText := fmt.Sprintf("appkey=%ssecret_key=%sswanid=%s", appKey, secrectKey, swanID)
    9. md5Sum := md5.Sum([]byte(plainText))
    10. return hex.EncodeToString(md5Sum[:])
    11. }
     
     
     
    1. /**
    2. * 生成 signature 校验码
    3. * appKey 小程序标识
    4. * secretKey 小程序私钥
    5. * swanId 用于 swanId
    6. */
    7. function generageSignature($appKey, $secrectKey, $swanId){
    8. $plainText = sprintf("appkey=%ssecret_key=%sswanid=%s", $appKey, $secrectKey, $swanId);
    9. return md5($plainText);
    10. }

    错误码

    Android

    错误码 说明
    201解析失败,请检查调起协议是否合法
    1001执行失败
    10001内部错误
    10002网络无连接

    iOS

    错误码 说明
    202解析失败,请检查参数是否正确
    10001内部错误
    10002网络无连接
    10004用户拒绝(user not login)
    10005系统拒绝

    文章题目:创新互联百度小程序教程:swan.getSwanId
    路径分享:http://www.shufengxianlan.com/qtweb/news19/360519.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联