マルチストア決済の設定

nowSDKは、now.gg搭載ストアおよび代替ストアでの決済サポートを可能にするペイメントモジュールを提供します。本ドキュメントでは、マルチストア決済を有効化するための手順を説明します。

前提条件

マルチストア決済を有効にするには、以下の要件を満たす必要があります:


1. 対応ストア

現在サポートされているストアは以下の通りです:

  • now.gg搭載ストア
    • クラウドストア
    • BlueStacksストア
  • 代替ストア
    • Samsung Galaxyストア
    • Xiaomi GetApps
    • ONE Store
    • Amazon Appstore
    • Huawei AppGallery(近日対応予定)

2. ビルド構成

nowSDKのペイメントモジュールを統合したら、最終APKを提出する前に、下記の変更が適用されていることを確認してください。

2.1 build.gradleへの依存関係追加

以下の依存関係をモジュール/アプリレベルのbuild.gradleに追加してください:

<!-- Xiaomi GetApps -->
 implementation "com.xiaomi.billingclient:billing:1.1.3"

<!-- ONE Store -->
 implementation "com.onestorecorp.sdk:sdk-iap:21.01.00"


2.2 リポジトリの追加/更新

ルートレベルbuild.gradleまたはsettings.gradleに、以下のリポジトリを含めてください:

 <!-- ONE Store -->
  pluginManagement {
     repositories {
         google {
             content {
                 includeGroupByRegex("com\\.android.*")
                 includeGroupByRegex("com\\.google.*")
                 includeGroupByRegex("androidx.*")
             }
         }
	   maven { url "https://jitpack.io" }
	   maven { url = uri("https://repo.onestore.net/repository/onestore-sdk-public") }
           mavenCentral()
           gradlePluginPortal()
     }
  }
  dependencyResolutionManagement {
     repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
     repositories {
         google()
         mavenCentral()
	   maven { url "https://jitpack.io" }
	   maven { url = uri("https://repo.onestore.net/repository/onestore-sdk-public") }
     }
  }


2.3 AndroidManifest.xmlの更新

アプリのAndroidManifest.xml内に以下を追加してください:

<!-- Samsung Galaxy Store -->
 <uses-permission android:name="com.samsung.android.iap.permission.BILLING"/>
 <uses-permission android:name="android.permission.INTERNET"/>

 <!-- ONE Store -->
 <queries>
   <intent>
     <action android:name="com.onestore.ipc.iap.IapService.ACTION" />
   </intent>
   <intent>
     <action android:name="android.intent.action.VIEW" />
     <data android:scheme="onestore" />
   </intent>
 </queries>

 <!-- Amazon Appstore -->
 <queries>
   <package android:name="com.amazon.sdktestclient" />
   <package android:name="com.amazon.venezia" />
 </queries>


2.4 Samsungライブラリの追加

注意: Samsung Galaxy Storeでのみ必要です。

手順:

  1. nowSDKパッケージ/Modules/Paymentsディレクトリからsamsung_iap-release.aarファイルを探してください。
  2. 提供された.aarをプロジェクトのlibsディレクトリに追加してください。


2.5 ProGuardルールの追加(ProGuard/R8を使用している場合のみ)

アプリでProGuard/R8を有効にしている場合は、以下のルールをProGuard設定に追加してください:

重要

  • アプリでProGuard/R8を有効にしている場合のみ必要です。
 <!-- ONE Store -->
  -keep class com.gaa.sdk.base.** { *; }
  -keep class com.gaa.sdk.auth.** { *; }
  -keep class com.gaa.sdk.iap.** { *; }
  -keep class com.onestore.extern.licensing.** { *; }

3. 追加要件

以下はストア固有の追加要件です。

3.1 Xiaomi GetApps – 空の署名済みAPK

Xiaomiでは、最初の提出時にアプリの署名証明書を確認するために、署名済みの空APKが必要です。この手順は、署名の不一致を防ぎ、今後のアップデートの整合性と信頼性を確保するためのものです。

手順:

1. 空APKをダウンロード

2. キーストアで署名を生成:

keytool -genkey -v -keystore <your-release-key.keystore> -alias <your-key-alias> -keyalg RSA -keysize 2048 -validity 10000

 jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore <your-release-key.keystore> <your-app.apk> <your-key-alias>

3. 署名済みAPKをdev-support@now.usに「Xiaomi – Signed Empty APK」という件名でメールしてください。

注意: アプリがGoogle Playで公開されている場合は、同じキーストアで署名することを推奨します。



3.2 ONE Store – グローバル配信の有効化

アプリをグローバル(韓国外)で配信する場合、ONE Storeでは署名済みoutput.zipが必要です。このファイルには暗号化されたアプリ署名キーが含まれており、ONE Storeがアプリの署名を安全に管理し、グローバル配信時に信頼性を確認できるようになります。

ワークフロー

  • アプリ専用の暗号化キーを提供しますので、それを使用して秘密鍵をエクスポート・暗号化しoutput.zipを生成してください。

手順:

1. PEPKツールをダウンロード(Googleよりまたはミラー

2. output.zipを生成:

java -jar pepk.jar --keystore=<your-keystore-file.keystore> --alias=<your-alias> --output=output.zip --include-cert --encryptionkey=<your-encryption-key>

3. output.zipdev-support@now.usに「ONE Store – output.zip」という件名で送付してください。

注意: PEPKツールはGoogleが開発・提供しています。アプリ署名キーの安全な暗号化を目的としており、正当な表記なく改変・再配布しないでください。



3.3 Amazon Appstore – PEMファイル

Amazon Appstoreでは、アプリの公開鍵を含むPEMファイルが必要です。これにより、アプリ内購入の安全な通信と購入検証が可能となり、不正防止や取引の安全性が向上します。

手順:

  • dev-support@now.usへ連絡し、アプリのPEMファイルを取得してください。
  • それをapp/src/main/assetsネイティブAndroid)またはAssets/StreamingAssetsUnity)に配置してください。
×
テキストがクリップボードにコピーされました。
copyLinkText
ご不明な点がございましたら、お気軽にお問い合わせください。 dev-support@now.us