简介
在接入“小游戏支付”或“小游戏通用信息查询”功能前,需完成服务端接入准备,包括申请阿里云账号、开通 mPaaS AI 内容魔方权限,并获取具有访问权限的 AccessKey(AK/SK)。
阿里云账号准备
创建 RAM 用户
请确保您已创建阿里云账号,并成功登录阿里云 RAM 控制台,身份管理 > 用户 > 创建用户,进行用户创建,必须勾选 使用永久 AccessKey 访问。

保存 AK/SK
创建完成后,仅首次创建,会出现 AccessKey 和 AccessSecret 相关信息,务必复制保存!!!

申请 mPaaS 权限
在阿里云 RAM 控制台,权限管理 > 授权,授权主题选择 刚创建的 RAM 用户,权限策略选择 AliyunMPAASFullAccess,新增 mPaaS 接入权限。

使用 AK/SK
完成 SDK 接入后,平台方可使用 AccessKey(AK/SK)调用 mPaaS 服务接口,实现订单状态的主动查询和用户身份校验功能。
SDK 调用示例
SDK 依赖
Java
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>mpaas20201028</artifactId>
<version>5.3.2</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-openapi</artifactId>
<version>0.3.10</version>
</dependency>Go
go get github.com/alibabacloud-go/mpaas-20201028/v3@v3.3.2PHP
composer require alibabacloud/mpaas-20201028:3.3.2代码示例
代码仅做参考,不用于具体接入使用。如有问题请及时联系 mPaaS 技术支持人员。
Java
public static String REGION_ID = "cn-hangzhou";
public static String ENDPOINT = "mpaas.cn-hangzhou.aliyuncs.com";
// 杭州非金预发
public static String ACCESS_KEY_ID = "AK";
public static String ACCESS_KEY_SECRET = "AS";
private static String MINI_PROGRAM_ID = "小游戏ID";
private static String PLATFORM_ID = "平台ID";
public static String CUSTOM_ID = "订单自定义ID";
public static void main(String[] args) throws Exception {
Config config = new Config();
// 必填,您的 AccessKey ID
config.setAccessKeyId(MPAAS_AK_ENV);
// 必填,您的 AccessKey Secret
config.setAccessKeySecret(MPAAS_SK_ENV);
// mPaaS 的 REGION_ID 和 Endpoint,以杭州非金为例
config.setRegionId(REGION_ID);
config.setEndpoint(ENDPOINT);
Client client = new Client(config);
queryPayOrderToMsence(client);
}
private static void queryPayOrderToMsence(Client client) throws Exception {
QueryPayOrderToMsenceRequest request = new QueryPayOrderToMsenceRequest();
request.setMiniProgramId(MINI_PROGRAM_ID);
request.setPlatformId(PLATFORM_ID);
request.setCustomId(CUSTOM_ID);
QueryPayOrderToMsenceResponse response = client.queryPayOrderToMsence(request);
System.out.println("response==>" + JSON.toJSONString(response));
}Go
package main
import (
"fmt"
"os"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mpaas "github.com/alibabacloud-go/mpaas-20201028/v3/client"
"github.com/alibabacloud-go/tea/dara"
)
func main() {
if err := queryPayOrderToMsence(); err != nil {
fmt.Fprintf(os.Stderr, "查询订单失败: %v\n", err)
os.Exit(1)
}
}
// queryPayOrderToMsence 演示如何调用 QueryPayOrderToMsence 接口
// 该接口用于查询支付订单状态
func queryPayOrderToMsence() error {
// 1. 创建客户端配置
config := &openapi.Config{
// 阿里云 AccessKey ID
AccessKeyId: dara.String("LTAI5tMZR3xxx"),
// 阿里云 AccessKey Secret
AccessKeySecret: dara.String("C811bjRc8z9HxeI0Nxxx"),
// 区域 ID,例如:cn-hangzhou
RegionId: dara.String("cn-hangzhou"),
// 可选:自定义 endpoint
Endpoint: dara.String("mpaas.cn-hangzhou.aliyuncs.com"),
}
// 2. 创建客户端
client, err := mpaas.NewClient(config)
if err != nil {
return fmt.Errorf("创建 mpaas 客户端失败: %w", err)
}
// 3. 构建请求参数
request := &mpaas.QueryPayOrderToMsenceRequest{
// 平台标识
PlatformId: dara.String("xxxxxx"),
// 小游戏 ID
MiniProgramId: dara.String("123321"),
// 自定义 ID(与创建订单时传入的 CustomId 一致)
CustomId: dara.String("test_custom_id"),
}
// 4. 调用接口
response, err := client.QueryPayOrderToMsence(request)
if err != nil {
return fmt.Errorf("调用 QueryPayOrderToMsence 失败: %w", err)
}
// 5. 处理响应
if response.Body != nil {
fmt.Printf("请求 ID: %s\n", dara.StringValue(response.Body.RequestId))
fmt.Printf("是否成功: %v\n", dara.BoolValue(response.Body.Success))
fmt.Printf("结果码: %s\n", dara.StringValue(response.Body.ResultCode))
fmt.Printf("结果消息: %s\n", dara.StringValue(response.Body.ResultMsg))
if response.Body.MpaasUserGamecenterPaymentQuerystatusResponse != nil {
fmt.Printf("订单状态: %s\n", dara.StringValue(response.Body.MpaasUserGamecenterPaymentQuerystatusResponse.OrderStatus))
}
}
return nil
}PHP
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\SDK\MPaaS\V20201028\MPaaS;
use AlibabaCloud\SDK\MPaaS\V20201028\Models\QueryPayOrderToMsenceRequest;
use AlibabaCloud\Dara\Exception\DaraException;
use AlibabaCloud\Dara\Models\RuntimeOptions;
use Darabonba\OpenApi\Models\Config;
// 1. 创建客户端配置
$config = new Config([
'accessKeyId' => getenv('ALIBABA_CLOUD_ACCESS_KEY_ID') ?: 'LTAI5tMZR33xxx',
'accessKeySecret' => getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET') ?: 'C811bjRc8z9HxeIxxx',
'regionId' => 'cn-hangzhou',
'endpoint' => 'mpaas.cn-hangzhou.aliyuncs.com',
]);
// 2. 创建客户端实例
$client = new MPaaS($config);
// 3. 构建请求参数
$request = new QueryPayOrderToMsenceRequest([
'customId' => 'your-custom-id', // 自定义ID
'miniProgramId' => 'your-mini-program-id', // 小游戏ID
'platformId' => 'your-platform-id', // 平台ID
]);
// 4. 创建运行时配置(可选)
$runtime = new RuntimeOptions([
'readTimeout' => 10000,
'connectTimeout' => 5000,
]);
try {
// 方式一:使用默认运行时配置调用
$response = $client->queryPayOrderToMsence($request);
// 方式二:使用自定义运行时配置调用
// $response = $client->queryPayOrderToMsenceWithOptions($request, $runtime);
// 5. 处理响应
$body = $response->body;
echo "RequestId: " . $body->requestId . "\n";
echo "ResultCode: " . $body->resultCode . "\n";
echo "ResultMsg: " . $body->resultMsg . "\n";
echo "Success: " . ($body->success ? 'true' : 'false') . "\n";
// 获取订单状态
if ($body->mpaasUserGamecenterPaymentQuerystatusResponse) {
echo "OrderStatus: " . $body->mpaasUserGamecenterPaymentQuerystatusResponse->orderStatus . "\n";
}
} catch (DaraException $e) {
// 处理业务异常
echo "DaraException: " . $e->getMessage() . "\n";
echo "Code: " . $e->getCode() . "\n";
} catch (\Exception $e) {
// 处理其他异常
echo "Exception: " . $e->getMessage() . "\n";
}常见问题
Q:服务端接入准备是否为必选?
A:是的。
服务端接入准备是使用 mPaaS AI 内容魔方各项能力的前提条件,包括支付、订单查询等核心功能均需完成该步骤后方可使用。
Q:服务端接入是否需要申请阿里云账号?
A:是的,必须申请。
平台方需注册并登录阿里云账号,开通 mPaaS AI 内容魔方权限,并获取具备访问权限的 AccessKey ID 和 AccessKey Secret(AK/SK),否则无法进行账号鉴权、支付处理、订单主动查询等操作。
Q:SDK 调用示例是否可以直接使用?
A:不建议直接使用。
SDK 示例代码仅供参数构造和调用方式参考,建议根据自身业务逻辑对 SDK 进行封装与适配,以确保代码的安全性、可维护性和系统兼容性。
Q:如果不使用 SDK,是否有无依赖的 HTTP 直接调用方式?
A:目前暂不支持。
当前仅支持通过 SDK 接入方式调用 mPaaS 服务,SDK 支持的语言包括 Java、Go、PHP,建议优先选择 Java 方式接入。若使用其他语言,请联系 mPaaS AI 内容魔方相关运营人员协助处理。
Q:能否提供 SDK 源码?
A:暂不提供源码。
目前仅提供官方发布的 SDK 依赖包,开发者可通过官方仓库引入使用。