小程序服务器api接口,百度智能小程序API 开放接口

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 小程序服务器api接口,百度智能小程序API 开放接口

登录

智能小程序可以通过百度官方提供的登录能力方便地获取百度提供的用户身份标识,快速建立智能小程序内的用户体系。

流程说明

1、调用 swan.login() 获取 临时登录凭证code ,并回传到开发者服务器。

2、开发者服务器以 code 换取 session_key。

3、调用 swan.getUserInfo() 获取用户信息。

4、点击查看详细流程。

login

解释: 调用接口 swan.login 获取 临时登录凭证(code)

参数: Object

Object参数说明:

参数名

类型

必填

说明

success

Function

接口调用成功的回调函数

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明:

参数

类型

说明

code

String

用户登录凭证(有效期五分钟)。开发者需要在开发者服务器后台调用 api,使用 code 换取 session_key 等信息

示例:swan.login({undefined

success: function (res) {undefined

swan.request({undefined

url: 'https://xxx/xxx', // 开发者服务器地址

data: {undefined

code: res.code

}

});

},

fail: function (err) {undefined

console.log('login fail', err);

}

});

登录凭证校验

临时登录凭证校验接口是一个 HTTPS 接口,开发者服务器使用 临时登录凭证(code) 获取 session_key。

注意:

1、会话密钥 session_key 是对用户数据进行加密签名的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到智能小程序,也不应该对外提供这个密钥。

2、临时登录凭证 code 只能使用一次。

接口地址:https://openapi.baidu.com/nalogin/getSessionKeyByCode

请求参数

参数

说明

client_id

开放平台申请的 App Key

sk

开放平台申请的 App Secret

code

swan.login 返回的临时登录凭证

Bug & Tip

1、tip: 调用 login 会引起登录态的刷新,之前的 session_key 可能会失效。

checkSession

解释:通过上述接口获得的用户登录态拥有一定的时效性,用户越久未使用智能小程序,用户登录态越有可能失效;反之如果用户一直在使用智能小程序,则用户登录态一直保持有效。具体时效逻辑由百度 App 维护,对开发者透明。开发者可以调用 swan.checkSession 接口 检测当前用户登录态是否有效,登录态过期后开发者可以再调用 swan.login 获取新的用户登录态。

参数:Object

Object参数说明:

参数名

类型

必填

说明

success

Function

接口调用成功的回调函数

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

示例:

swan.checkSession({undefined

success: function (res) {undefined

console.log('登录态有效');

},

fail: function (err) {undefined

console.log('登录态无效');

}

});

用户数据的签名验证和加解密

智能小程序可以通过各种前端接口获取百度提供的开放数据。考虑到开发者服务器也需要获取这些开放数据,百度会对这些数据做签名和加密处理。开发者后台拿到开放数据后可以对数据进行校验签名和解密,来保证数据不被篡改。

加密数据解密算法

接口如果涉及敏感数据,接口的明文内容将不包含这些敏感数据。开发者如需要获取敏感数据,需要对接口返回的加密数据(data)进行对称解密。

解密过程:开发者智能小程序(通过 swan.request)将加密数据发送至自身 Server 进行解密后返回智能小程序。

解密算法如下:

1、对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充。

2、对称解密的目标密文为 Base64_Decode(data)。

3、对称解密秘钥 AESKey = Base64_Decode(session_key), AESKey 是24字节。

4、对称解密算法初始向量 为Base64_Decode(iv),其中iv由数据接口返回。

授权

authorize

解释:提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权智能小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。

参数:Object

Object参数说明:

参数名

类型

必填

说明

scope

String

需要获取权限的 scope,详见 scope 列表

success

Function

接口调用成功的回调函数

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

scope 列表

scope

对应接口

描述

scope.userInfo

swan.getUserInfo

用户信息

scope.userLocation

swan.getLocation, swan.chooseLocation

地理位置

scope.writePhotosAlbum

swan.saveImageToPhotosAlbum

保存到相册

scope.address

swan.chooseAddress

收获地址

scope.invoiceTitle

swan.chooseInvoiceTitle

发票抬头

scope.record

swan.getRecorderManager

录音功能

scope.camera

摄像头

success返回参数说明:

参数名

类型

说明

errMsg

String

调用结果

示例:

swan.authorize({undefined

scope: 'scope.userLocation',

success: function (res) {undefined

// 用户已经同意智能小程序使用定位功能

swan.getLocation();

}

});

Bug & Tip

1、tip: 授权操作为异步操作,完成前请不要多次调用。

用户信息

swanid 机制说明

swanid 是用户使用智能小程序时的标识符,开发者可以通过 swanid 来区分用户的唯一性。

1、用户在非登陆情况下使用智能小程序时,在同一台设备上使用同一个开发者所开发的不同智能小程序,得到的是相同的 swanid。2、用户在登陆情况下使用智能小程序时,在多台不同设备上使用同一个开发者所开发的不同智能小程序,得到的是相同的 swanid。3、用户使用同一台设备时,在非登陆情况下与登陆情况下使用同一个智能小程序,得到的 swanid 是不同的。

getSwanId

解释:获取 swanid。

参数:Object

Object参数说明:

参数名

类型

必填

说明

success

Function

接口调用成功的回调函数

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明:

参数

类型

说明

errno

String

errno

data

Object

{swanid}

errmsg

String

errmsg

示例:swan.getSwanId({undefined

success: function (res) {undefined

console.log(res.data.swanid);

}

});

getUserInfo

解释:获取用户信息

参数:Object

Object参数说明:

参数名

类型

必填

说明

success

Function

接口调用成功的回调函数

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明:

参数

类型

说明

userInfo

Object

用户信息对象

data

String

包括敏感数据在内的完整用户信息的加密数据,加解密逻辑参考用户数据的签名验证和加解密

iv

String

加密算法的初始向量

userInfo参数说明:

参数

类型

说明

nickName

String

用户名

avatarUrl

String

用户头像

gender

String

性别

示例:

swan.getUserInfo({undefined

success: function (res) {undefined

console.log('用户名', res.nickName);

}

});

设置

openSetting

解释:调起客户端智能小程序设置界面,返回用户设置的操作结果。

参数:Object

Object参数说明:

参数名

类型

必填

说明

success

Function

接口调用成功的回调函数

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明:

参数

类型

说明

authSetting

Object

用户授权结果,其中 key 为 scope 值,value 为 Bool 值,表示用户是否允许授权

示例:

swan.openSetting({undefined

success: function (res) {undefined

console.log(res.authSetting['scope.userInfo']);

console.log(res.authSetting['scope.userLocation']);

}

});

getSetting

解释:获取用户的当前设置

参数:Object

Object参数说明:

参数名

类型

必填

说明

success

Function

接口调用成功的回调函数

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明:

参数

类型

说明

authSetting

Object

用户授权结果,其中 key 为 scope 值,value 为 Bool 值,表示用户是否允许授权

示例:

swan.getSetting({undefined

success: function (res) {undefined

console.log(res.authSetting['scope.userInfo']);

console.log(res.authSetting['scope.userLocation']);

}

});

分享

onShareAppMessage

解释:在 Page 中定义 onShareAppMessage 函数,设置该页面的分享信息。

用户点击分享按钮的时候会调用

此事件需要 return 一个Object,用于自定义分享内容

参数:Object

Object参数说明:

参数名

类型

说明

from

String

分享事件来源。button:页面内转发按钮;menu:右上角分享菜单

currentTarget

Object

如果 from 值是 button,则 currentTarget 是触发这次转发事件的 button,否则为 undefined

自定义分享字段:

参数名

类型

必填

说明

title

String

分享标题

content

String

分享内容

imageUrl

String

分享图标

path

String

页面 path ,必须是以 / 开头的完整路径

success

Function

接口调用成功的回调函数

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

示例:Page({undefined

onShareAppMessage() {undefined

return {undefined

title: '智能小程序示例',

content: '世界很复杂,百度更懂你',

path: '/pages/openShare/openShare?key=value'

};

}

});

Bug & Tip

1、bug: iOS 点击分享面板的取消时,会执行 fail,Android 不会执行。

收获地址

chooseAddress

解释:调起用户编辑收货地址原生界面,并在编辑完成后返回用户选择的地址。

需要用户授权 scope.address

参数:Object

Object参数说明:

参数名

类型

必填

说明

success

Function

返回用户选择的收货地址信息

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明:

参数名

类型

说明

errMsg

String

调用结果

userName

String

收货人姓名

postalCode

String

邮编

provinceName

String

国标收货地址第一级地址

cityName

String

国标收货地址第二级地址

countyName

String

国标收货地址第三级地址

detailInfo

String

详细收货地址信息

telNumber

String

收货人手机号码

示例:

swan.chooseAddress({undefined

success: function (res) {undefined

console.log(res.userName);

console.log(res.postalCode);

console.log(res.provinceName);

console.log(res.cityName);

console.log(res.countyName);

console.log(res.detailInfo);

console.log(res.telNumber);

}

});

聚合收银台支付

requestPolymerPayment

版本:百度 App 10.7.0 版本开始支持。

解释:百度聚合收银台,聚合了主流的百度钱包、微信、支付宝、网银等多种支付方式,方便开发者一站式快速接入多种支付渠道,让百度用户能在智能小程序场景下,直接完成支付、交易闭环,提升用户支付体验的同时,提高智能小程序的订单转化率。

参数:Object

Object参数说明:

参数名

类型

必填

说明

orderInfo

Object

订单信息

bannedChannels

StringArray

需要隐藏的支付方式

success

Function

接口调用成功的回调函数

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

orderInfo 参数说明:

dealId: 跳转百度收银台支付必带参数之一,是百度收银台的财务结算凭证,与账号绑定的结算协议一一对应,每笔交易将结算到dealId对应的协议主体。

appKey: 用以表示应用身份的唯一ID,在应用审核通过后进行分配,一经分配后不会发生更改,来唯一确定一个应用。

totalAmount: 订单金额,单位为人民币分。

tpOrderId: 商户平台自己记录的订单ID,当支付状态发生变化时,会通过此订单ID通知商户。

dealTitle: 订单的名称。

rsaSign: 对appKey+dealId+tpOrderId进行RSA加密后的密文,防止订单被伪造。签名过程见 百度电商开放平台:签名与验签

bizInfo: 订单详细信息,需要是一个可解析为JSON Object的字符串。字段内容见: 百度电商开放平台:收银台接入

bannedChannels 参数说明:

channel

说明

Alipay

支付宝

BDWallet

百度钱包

WeChat

微信支付

示例:swan.requestPolymerPayment({undefined

orderInfo: {undefined

"dealId": "470193086",

"appKey": "MMMabc",

"totalAmount": "1",

"tpOrderId": "3028903626",

"dealTitle": "智能小程序Demo支付测试",

"rsaSign": '',

"bizInfo": ''

},

success: function (res) {undefined

swan.showToast({undefined

title: '支付成功',

icon: 'success'

});

},

fail: function (err) {undefined

swan.showToast({undefined

title: JSON.stringify(err)

});

console.log('pay fail', err);

}

});

获取发票抬头

chooseInvoiceTitle

解释:选择用户的发票抬头。

需要用户授权 scope.invoiceTitle

参数:Object

Object参数说明:

参数名

类型

必填

说明

success

Function

接口调用成功的回调函数

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明:

参数名

类型

说明

type

String

抬头类型(0:单位,1:个人)

title

String

抬头名称

taxNumber

String

抬头税号

companyAddress

String

单位地址

telephone

String

手机号码

bankName

String

银行名称

bankAccount

String

银行账号

errMsg

String

接口调用结果

示例:swan.chooseInvoiceTitle({undefined

success: function (res) {undefined

console.log(res.type);

console.log(res.title);

console.log(res.taxNumber);

console.log(res.companyAddress);

console.log(res.telephone);

console.log(res.bankName);

console.log(res.bankAccount);

}

})

目录
相关文章
|
7天前
|
API PHP 开发者
速卖通商品详情接口(速卖通API系列)
速卖通(AliExpress)是阿里巴巴旗下的跨境电商平台,提供丰富的商品数据。通过速卖通开放平台(AliExpress Open API),开发者可获取商品详情、订单管理等数据。主要功能包括商品搜索、商品详情、订单管理和数据报告。商品详情接口aliexpress.affiliate.productdetail.get用于获取商品标题、价格、图片等详细信息。开发者需注册账号并创建应用以获取App Key和App Secret,使用PHP等语言调用API。该接口支持多种请求参数和返回字段,方便集成到各类电商应用中。
|
13天前
|
JSON API 数据格式
微店商品列表接口(微店 API 系列)
微店商品列表接口是微店API系列的一部分,帮助开发者获取店铺中的商品信息。首先需注册微店开发者账号并完成实名认证,选择合适的开发工具如PyCharm或VS Code,并确保熟悉HTTP协议和JSON格式。该接口支持GET/POST请求,主要参数包括店铺ID、页码、每页数量和商品状态等。响应数据为JSON格式,包含商品详细信息及状态码。Python示例代码展示了如何调用此接口。应用场景包括商品管理系统集成、数据分析、多平台数据同步及商品展示推广。
|
6天前
|
人工智能 JSON 自然语言处理
AI 程序员的4个分身 | 代码生成专家+注释精灵+API集成助手+智能调试伙伴
AI 程序员的4个分身 | 代码生成专家+注释精灵+API集成助手+智能调试伙伴
139 35
|
5天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
29 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
4天前
|
监控 供应链 搜索推荐
亚马逊商品详情接口(亚马逊 API 系列)
亚马逊作为全球最大的电商平台之一,提供了丰富的商品资源。开发者和电商从业者可通过亚马逊商品详情接口获取商品的描述、价格、评论、排名等数据,对市场分析、竞品研究、价格监控及业务优化具有重要价值。接口基于MWS服务,支持HTTP/HTTPS协议,需注册并获得API权限。Python示例展示了如何使用mws库调用接口获取商品详情。应用场景包括价格监控、市场调研、智能选品、用户推荐和库存管理等,助力电商运营和决策。
51 23
|
5天前
|
JSON 数据挖掘 API
lazada商品详情接口 (lazada API系列)
Lazada 是东南亚知名电商平台,提供海量商品资源。通过其商品详情接口,开发者和商家可获取商品标题、价格、库存、描述、图片、用户评价等详细信息,助力市场竞争分析、商品优化及库存管理。接口采用 HTTP GET 请求,返回 JSON 格式的响应数据,支持 Python 等语言调用。应用场景包括竞品分析、价格趋势研究、用户评价分析及电商应用开发,为企业决策和用户体验提升提供有力支持。
52 21
|
2天前
|
JSON API 数据格式
eBay商品详情接口(ebay API系列)
eBay 商品详情接口是电商从业者、开发者和数据分析师获取商品详细信息的重要工具,涵盖标题、价格、库存、卖家信息等。使用前需在 eBay 开发者平台注册并获取 API 凭证,通过 HTTP GET 请求调用接口,返回 JSON 格式数据。Python 示例代码展示了如何发送请求并解析响应,确保合法合规使用数据。
32 12
|
1天前
|
JSON API 数据格式
阿里巴巴商品详情接口(阿里巴巴 API 系列)
在电商开发中,获取阿里巴巴商品详情信息对数据分析、竞品研究等至关重要。通过调用其商品详情接口,开发者可获取标题、价格、图片、描述等数据,满足多种业务需求。接口采用HTTPS协议,支持GET/POST请求,返回JSON格式数据。示例代码展示了如何使用Python的requests库进行接口请求,需传递商品ID和访问令牌。实际应用时,请依据官方文档调整参数并确保安全性。
27 10
|
6天前
|
数据采集 JSON 监控
速卖通商品列表接口(以 AliExpress Affiliate 商品查询 API 为例)
以下是使用 Python 调用速卖通商品列表接口(以 AliExpress Affiliate 商品查询 API 为例)的代码示例。该示例包含准备基础参数、生成签名、发送请求和处理响应等关键步骤,并附有详细注释说明。代码展示了如何通过公共参数和业务参数构建请求,使用 HMAC-SHA256 加密生成签名,确保请求的安全性。最后,解析 JSON 响应并输出商品信息。此接口适用于商品监控、数据采集与分析及商品推荐等场景。注意需通过 OAuth2.0 获取 `access_token`,并根据官方文档调整参数和频率限制。
|
7天前
|
存储 搜索推荐 API
淘宝拍立淘按图搜索API接口系列概述
淘宝拍立淘按图搜索API接口允许用户通过上传图片或拍摄实物来搜索相似或相同的商品。这一功能主要依赖于图像识别技术,系统会对上传的图片进行分析和处理,提取出商品的特征信息,并在淘宝的商品数据库中进行匹配搜索,最终返回与上传图片相似或相同的商品列表。