현재 내가 만든 Unity 기반 Android 게임에 대한 인앱 결제를 설정하고 있으며이를 수행하기 위해 OpenIAB 플러그인을 사용하고 있습니다. 현재 Google Play 스토어에서만 테스트 중입니다.테스트 중에 Android IAP에서 항목을 찾을 수 없음
이미 개발자 콘솔을 통해 인앱 제품을 게시했습니다. 저는 베타 버전으로 게시 된 APK와 협력하고 있습니다. 기본 전자 메일이 할당 된 테스터 중 하나 인 장치에서 게임을 테스트하고 있으며 중요한 경우에 대비해 테스트 응답을 LICENSE로 설정했습니다.
OpenIAB을 사용할 때는 기본적으로 OpenIAB.purchaseProduct(string)
함수를 호출하고 "SKU"를 전달해야합니다. 내가 통과해야 문자열 어떤 형태로 완전히 잘 모르겠지만, 지금까지 나는이 조합을 시도하고있다 :
- "SKU_NAME"
- "com.CompanyName.ProductName.sku_name"
- 을 " com.companyname.productname.sku_name "
이러한 SKU 식별자는 모두"구입하려고 시도한 항목을 찾을 수 없습니다 "라는 오류 메시지가 나타납니다. 나는 "sku_name"의 철자를 정확하게 알고있다. 정말 developerPayload
이 있어야하는데 모르는
private static AndroidJavaObject _plugin;
static OpenIAB_Android() {
if (Application.platform != RuntimePlatform.Android) {
STORE_GOOGLE = "STORE_GOOGLE";
STORE_AMAZON = "STORE_AMAZON";
STORE_TSTORE = "STORE_TSTORE";
STORE_SAMSUNG = "STORE_SAMSUNG";
STORE_YANDEX = "STORE_YANDEX";
return;
}
AndroidJNI.AttachCurrentThread();
// Find the plugin instance
using (var pluginClass = new AndroidJavaClass("org.onepf.openiab.UnityPlugin")) {
_plugin = pluginClass.CallStatic<AndroidJavaObject>("instance");
STORE_GOOGLE = pluginClass.GetStatic<string>("STORE_GOOGLE");
STORE_AMAZON = pluginClass.GetStatic<string>("STORE_AMAZON");
STORE_TSTORE = pluginClass.GetStatic<string>("STORE_TSTORE");
STORE_SAMSUNG = pluginClass.GetStatic<string>("STORE_SAMSUNG");
STORE_YANDEX = pluginClass.GetStatic<string>("STORE_YANDEX");
}
}
private bool IsDevice() {
if (Application.platform != RuntimePlatform.Android) {
//OpenIAB.EventManager.SendMessage("OnBillingNotSupported", "editor mode");
return false;
}
return true;
}
public void purchaseProduct(string sku, string developerPayload="") {
if (!IsDevice()) {
// Fake purchase in editor mode
OpenIAB.EventManager.SendMessage("OnPurchaseSucceeded", Purchase.CreateFromSku(sku, developerPayload).Serialize());
return;
}
_plugin.Call("purchaseProduct", sku, developerPayload);
}
: purchaseProduct()
의 구현과 필요한 변수 _plugin
는 다음과 같이 (이의 OpenIAB 플러그인 소스 코드에서하지 나)입니다. 나는 OpenIAB.purchaseProduct()
으로 전화하는 것 이외의 특별한 일을하지 않고있다. 아마도 나는 잊고있다.
실제로 적절한 제품을 요청하는 방법에 대한 지침이나 아이디어는 누구든지 제공 할 수 있습니까?
스토어 통합을 만드는 새로운 방법이 새로 추가되었습니다. MobiShop은이 중 하나입니다. 기본 상점 (https://www.assetstore.unity3d.com/en/#!/content/63636)을 사용하여 구매를 테스트하고 설정을 얻는 간단한 방법을 제공합니다. – Chris