tencent cloud

腾讯云超级应用服务

动态与公告
【2025年1月2日】关于腾讯云小程序平台更名为腾讯云超级应用服务的公告
控制台更新动态
Android SDK 更新动态
iOS SDK 更新动态
Flutter 更新动态
IDE 更新动态
基础库更新动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
按量计费(后付费)
续费指引
停服说明
快速入门
套餐管理
概述
控制台账号管理
存储配置
加速配置
品牌化配置
平台功能
控制台登录
用户和权限体系
小程序管理
小游戏管理
应用管理
商业化
平台管理
用户管理
团队管理
运营管理
安全中心
代码接入指引
Demo 及 SDK 获取
Android
iOS
Flutter
App 服务端接入指南
GUID 生成规则
小程序开发指南
小程序介绍与开发环境
小程序代码组成
指南
框架
组件
API
服务端
JS SDK
基础库
IDE 使用指南
小游戏开发指南
指南
API
服务端
实践教程
小程序登录实践教程
小程序订阅消息实践教程
支付相关实践教程
广告接入实践教程
小游戏订阅消息实践教程
相关协议
数据处理和安全协议

开放接口

PDF
聚焦模式
字号
最后更新时间: 2025-12-05 22:25:58
小程序 SDK 提供部分开放接口,用于调用和实现登录、获取用户信息、支付等superapp提供的能力。
注意:
开放接口目前提供了 2 套实现方案:
v1: 完全由 superapp 自定义,所有开放接口都需 superapp 开发者自行实现。
v2: 从 SDK 2.1.0 版本开始,SDK 提供了登录(wx.login)、用户信息(wx.getPhoneNumber、wx.getEmail、wx.chooseAvatar、wx.getNickName)和登录态检查(wx.checkSession)的默认实现,用户可以通过简单的配置就完成小程序用户登录和superapp用户信息的相关逻辑串联。

接口说明

小程序方法
TMFMiniAppSDKDelegate 代理实现方法
描述
默认实现
wx.login
login
登录接口 SDK
2.1.0 版本起,提供默认实现(v2)
wx.getPhoneNumber
getPhoneNumber
获取电话号码
2.1.0 版本起,提供默认实现(v2)
wx.getEmail
getEmail
获取用户邮箱
2.1.0 版本起,提供默认实现(v2)
wx.checkSession
checkSession
检查登录状态是否过期
2.1.0 版本起,提供默认实现(v2)
wx.chooseAvatar
chooseAvatar
获取用户头像
2.1.0 版本起,提供默认实现(v2)
wx.getNickName
getNickName
获取用户昵称
2.1.0 版本起,提供默认实现(v2)
wx.getUserInfo
getUserInfo
获取用户基本信息
无默认实现
wx.getUserProfile
getUserProfile
获取用户属性信息
无默认实现
wx.requestPayment
requestPayment
发起支付
无默认实现
wx.requestMidasPaymentGameItem
requestMidasPaymentGameItem
小游戏支付
无默认实现
wx.requestVirtualPayment
requestVirtualPayment
小程序虚拟支付
无默认实现

代理类中相关接口

// 发起支付 - Request payment
// @param app 小程序/小游戏实例
// @param params 参数
// @param completionHandler 回调结果
- (void)requestPayment:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;

// 发起小游戏道具直购支付
// @param app 小游戏实例
// @param params 参数
// @param completionHandler 回调结果
- (void)requestMidasPaymentGameItem:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;

// 发起小程序虚拟支付 - Initiate virtual payment for mini props
// @param app 小程序/小游戏实例 - Mini program/mini game instance
// @param params 参数 - parameters
// @param completionHandler 回调结果 - Result callback
- (void)requestVirtualPayment:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;

// login
// @param app 小程序/小游戏实例
// @param params 参数
// @param completionHandler 回调结果
- (void)login:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;

// checkSession
// @param app 小程序/小游戏实例
// @param params 参数
// @param completionHandler 回调结果
- (void)checkSession:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;

// getUserProfile
// @param app 小程序/小游戏实例
// @param params 参数
// @param completionHandler 回调结果
- (void)getUserProfile:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;


// getPhoneNumber
// @param app 小程序/小游戏实例
// @param params 参数
// @param completionHandler 回调结果
- (void)getPhoneNumber:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;

// getUserInfo
// @param app 小程序/小游戏实例
// @param params 参数
// @param completionHandler 回调结果
- (void)getUserInfo:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;

// OpenApi使用版本 - OpenApi version
// @param app 小程序/小游戏实例 - Mini program/mini game instance
// @reutn v1/v2
- (NSString *)openApiVersion:(TMFMiniAppInfo *)app;

实现说明

Superapp 开发者可以通过重写 MiniOpenApiProxy 的代理实现,实现开放接口逻辑。

v1 版本实现说明

v1版本所有接口都需要 superapp 开发者自行实现。

示例代码


- (void)getUserInfo:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler {
if (completionHandler) {
completionHandler(@{
@"nickName": [DemoUserInfo sharedInstance].nickName,
@"avatarUrl": [DemoUserInfo sharedInstance].avatarUrl,
@"gender": [NSNumber numberWithUnsignedInt:[DemoUserInfo sharedInstance].gender],
@"country": [DemoUserInfo sharedInstance].country,
@"province": [DemoUserInfo sharedInstance].province,
@"city": [DemoUserInfo sharedInstance].city,
@"language": @"zh_CN"
},nil);
}
}

- (void)getUserProfile:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler {
if (completionHandler) {
completionHandler(@{
@"nickName": [DemoUserInfo sharedInstance].nickName,
@"avatarUrl": [DemoUserInfo sharedInstance].avatarUrl,
@"gender": [NSNumber numberWithUnsignedInt:[DemoUserInfo sharedInstance].gender],
@"country": [DemoUserInfo sharedInstance].country,
@"province": [DemoUserInfo sharedInstance].province,
@"city": [DemoUserInfo sharedInstance].city,
@"language": @"zh_CN"
},nil);
}
}

v2 版本实现说明

需要在 superapp 登录后,将获取到的 UID(superapp的当前用户账号标识)通过代理接口返回给 SDK引擎。例如在superapp登录后,将 UID 设置在 [DemoUserInfo sharedInstance].userId 中,则代理接口的实现如下:
- (NSString *)getAppUID {
return [DemoUserInfo sharedInstance].userId;
}

自定义登录逻辑的兼容处理

从 SDK 2.2.10 版本开始,SDK 接口在 v2 默认实现的基础上可以支持superapp通过接口配置使用v1实现。
// OpenApi使用版本 - OpenApi version
// @param app 小程序/小游戏实例 - Mini program/mini game instance
// @reutn v1/v2
- (NSString *)openApiVersion:(TMFMiniAppInfo *)app;
注意:
小程序开发者在 app.json 中使用 apiVersion 字段针对2.1.0之后默认实现的 API 进行版本控制,未配置时以代理接口的 openApiVersion 方法返回为准,配置后 API 版本保持统一。即:
apiVersion 的配置优先级高于 openApiVersion 代理接口返回的值。
(例如:apiVersion 配置 v2则所有 API 均使用 v2实现,不支持版本混用,即使 openApiVersion 返回其它值, 也会走 v2实现)

代码示例:

- (NSString *)openApiVersion:(TMFMiniAppInfo *)app {
//该app使用v2版本的openAPI
return @"v2";
}


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈