MShop支付
MShop是Garena的数字商城,允许玩家购买游戏内物品和货币。SDK提供了多种方式来将MShop集成到您的游戏中。
配置
- Android
- Unity
- Unreal
在app级别下的build.gradle中添加以下依赖,并将$msdk_version替换为实际的MSDK版本
implementation "com.garena.sdk.android:payment-mshop:$msdk_version"
打包unitypackage时需要添加mshop功能。
打包unreal plugin时需要添加mshop功能。
在WebView中打开MShop
游戏可以调用这个API在嵌入式WebView(支持自动登录)中直接打开MShop。
区域配置
- region格式应该是大写的,如
TW,TH等。然后将跳转为相应地区的MShop网站 - 如果region为空,将跳转至 https://shop.garena.com, 并重定向至用户ip对应的MShop地址
- Android
- Unity
- Unreal
MShopPaymentManager.openEmbeddedMShop(
this, // activity instance
getRegion(),
getServerId(),
getRoleId(),
new MShopPaymentManager.MShopInteractionListener() {
@Override
public void onError(@NonNull MSDKError error) {
// Handle error
}
@Override
public void onDismiss() {
// Refresh your in-game balance
}
});
GMSDKHandler.MShopClient.openEmbeddedMShop(region, serverID, roleID, LogScene.LogResult, OnDismiss);
MsdkCallbacks->OnOpenEmbeddedMShopError.AddDynamic(this, &UTestMShopWidget::OnOpenEmbeddedMShopError);
MsdkCallbacks->OnOpenEmbeddedMShopDismiss.AddDynamic(this, &UTestMShopWidget::OnOpenEmbeddedMShopDismiss);
UMsdkShop::OpenEmbeddedMShop(Region, ServerId, RoleId);
在外部浏览器打开MShop
- Android
- Unity
- Unreal
MShopPaymentManager.openMShop(this, getRegion(), getServerId(), getRoleId(), result->{
if(result.isSuccess()){
// open browser succeed, nothing needs to do
} else {
MSDKError error = result.getErrorInfo();
// handle error
}
});
GMSDKHandler.MShopClient.OpenMShop(region, serverID, roleID, LogScene.LogResult);
MsdkCallbacks->OnOpenMShopInBrowser.AddDynamic(this, &UTestMShopWidget::OnOpenMShop);
UMsdkShop::OpenMShop(Region, ServerId, RoleId);
获取MShop链接
- Android
- Unity
- Unreal
MShopPaymentManager.getMShopLink(activity, region, serverId, roleId, false, result -> {
if (result.isSuccess()) {
// Get link succeed
} else {
// handle error
}
});
GMSDKHandler.MShopClient.GetMShopLink(region, serverID, roleID, embedded, LogScene.LogResult);
MsdkCallbacks->OnGetMShopLink.AddDynamic(this, &UTestMShopWidget::OnGetMShopLink);
UMsdkShop::GetMShopLink(Region, ServerId, RoleId);
备注
此功能仅适用于Unity和Unreal平台。