10 Commits

Author SHA1 Message Date
62046f4bdc update:合并代码 2026-02-10 19:30:48 +08:00
a6db6d438c update:更新Rustore的Review 2026-02-02 15:23:24 +08:00
f233be2646 update:更新skuDetail 2026-01-30 20:58:54 +08:00
4636ddc74e update:rustore 支付 2026-01-30 20:37:19 +08:00
39a3505ce9 update:回到正式服 2026-01-30 20:27:34 +08:00
5410f88c6c update:更新Tysdk 2026-01-30 20:13:46 +08:00
b3869d3488 update:当前支付成功 2026-01-29 18:02:40 +08:00
9f1379c465 update:支付调整 2026-01-29 10:22:25 +08:00
333d8fa6f7 update:登陆检测链接更新 2026-01-28 16:40:53 +08:00
29bac5b580 update:成功vk登陆 2026-01-28 16:12:19 +08:00
12 changed files with 1141 additions and 63 deletions

View File

@@ -6,7 +6,9 @@
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application android:extractNativeLibs="true" android:name="com.unity3d.player.TYApp" android:usesCleartextTraffic="true">
<application android:extractNativeLibs="true" android:name="com.unity3d.player.TYApp"
tools:replace="android:usesCleartextTraffic"
android:usesCleartextTraffic="true">
<activity android:name="com.unity3d.player.TYUnityActivity"
android:theme="@style/UnityThemeSelector">
<intent-filter>

View File

@@ -33,9 +33,9 @@ android {
// ↓↓↓ 这里放你的 VK ID 占位符 ↓↓↓
manifestPlaceholders = [
VKIDRedirectHost : "vk.ru",
VKIDRedirectScheme: "vk54428192",
VKIDClientID : "54428192",
VKIDClientSecret : "xxxxx"
VKIDRedirectScheme: "vk54432404",
VKIDClientID : "54432404",
VKIDClientSecret : "WD6BO0CwPXsKMaaFX8Qq"
]
}

View File

@@ -60,6 +60,9 @@ dependencies {
implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1"
implementation(platform("ru.rustore.sdk:bom:2025.11.01"))
implementation("ru.rustore.sdk:pay")
implementation "ru.rustore.sdk:review:10.0.0"
implementation "com.vk.id:vkid:2.5.1"
coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:2.1.2"

View File

@@ -38,7 +38,6 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.12733836, g: 0.13418846, b: 0.12118524, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
@@ -123,6 +122,85 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &9113281
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9113282}
- component: {fileID: 9113284}
- component: {fileID: 9113283}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9113282
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9113281}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 678940590}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &9113283
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9113281}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Review
--- !u!222 &9113284
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9113281}
m_CullTransparentMesh: 1
--- !u!1 &29523098
GameObject:
m_ObjectHideFlags: 0
@@ -365,6 +443,85 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 120435829}
m_CullTransparentMesh: 1
--- !u!1 &159485066
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 159485067}
- component: {fileID: 159485069}
- component: {fileID: 159485068}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &159485067
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 159485066}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1113066541}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &159485068
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 159485066}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: L_VK
--- !u!222 &159485069
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 159485066}
m_CullTransparentMesh: 1
--- !u!1 &174456813
GameObject:
m_ObjectHideFlags: 0
@@ -591,6 +748,127 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 231808344}
m_CullTransparentMesh: 1
--- !u!1 &263924338
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 263924339}
- component: {fileID: 263924341}
- component: {fileID: 263924340}
- component: {fileID: 263924342}
m_Layer: 5
m_Name: VkLogin
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &263924339
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 263924338}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 959891290}
m_Father: {fileID: 1044920373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &263924340
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 263924338}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &263924341
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 263924338}
m_CullTransparentMesh: 1
--- !u!114 &263924342
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 263924338}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 263924340}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &276006784
GameObject:
m_ObjectHideFlags: 0
@@ -801,12 +1079,12 @@ MonoBehaviour:
m_RequiresColorTexture: 0
m_Version: 2
m_TaaSettings:
quality: 3
frameInfluence: 0.1
jitterScale: 1
mipBias: 0
varianceClampScale: 0.9
contrastAdaptiveSharpening: 0
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
--- !u!1 &340278280
GameObject:
m_ObjectHideFlags: 0
@@ -965,6 +1243,127 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 354913240}
m_CullTransparentMesh: 1
--- !u!1 &365226264
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 365226265}
- component: {fileID: 365226268}
- component: {fileID: 365226267}
- component: {fileID: 365226266}
m_Layer: 5
m_Name: CVk
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &365226265
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 365226264}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 425077563}
m_Father: {fileID: 1044920373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &365226266
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 365226264}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 365226267}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &365226267
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 365226264}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &365226268
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 365226264}
m_CullTransparentMesh: 1
--- !u!1 &407966797
GameObject:
m_ObjectHideFlags: 0
@@ -1044,6 +1443,85 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 407966797}
m_CullTransparentMesh: 1
--- !u!1 &425077562
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 425077563}
- component: {fileID: 425077565}
- component: {fileID: 425077564}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &425077563
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 425077562}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 365226265}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &425077564
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 425077562}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: C_VK
--- !u!222 &425077565
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 425077562}
m_CullTransparentMesh: 1
--- !u!1 &571824850
GameObject:
m_ObjectHideFlags: 0
@@ -1165,6 +1643,127 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 571824850}
m_CullTransparentMesh: 1
--- !u!1 &678940589
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 678940590}
- component: {fileID: 678940593}
- component: {fileID: 678940592}
- component: {fileID: 678940591}
m_Layer: 5
m_Name: Review
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &678940590
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678940589}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 9113282}
m_Father: {fileID: 1044920373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &678940591
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678940589}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 678940592}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &678940592
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678940589}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &678940593
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678940589}
m_CullTransparentMesh: 1
--- !u!1 &686445508
GameObject:
m_ObjectHideFlags: 0
@@ -2044,6 +2643,85 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &959891289
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 959891290}
- component: {fileID: 959891292}
- component: {fileID: 959891291}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &959891290
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 959891289}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 263924339}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &959891291
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 959891289}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 33
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: VK
--- !u!222 &959891292
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 959891289}
m_CullTransparentMesh: 1
--- !u!1 &1033367769
GameObject:
m_ObjectHideFlags: 0
@@ -2276,11 +2954,14 @@ RectTransform:
- {fileID: 1956900235}
- {fileID: 1910171036}
- {fileID: 1188788676}
- {fileID: 263924339}
- {fileID: 1627053315}
- {fileID: 1668967320}
- {fileID: 834002869}
- {fileID: 1094138236}
- {fileID: 698899140}
- {fileID: 1113066541}
- {fileID: 365226265}
- {fileID: 948068709}
- {fileID: 1033467961}
- {fileID: 571824851}
@@ -2293,6 +2974,7 @@ RectTransform:
- {fileID: 1686948820}
- {fileID: 827533342}
- {fileID: 1240291498}
- {fileID: 678940590}
m_Father: {fileID: 1451597222}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -2766,6 +3448,127 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1110300852}
m_CullTransparentMesh: 1
--- !u!1 &1113066540
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1113066541}
- component: {fileID: 1113066544}
- component: {fileID: 1113066543}
- component: {fileID: 1113066542}
m_Layer: 5
m_Name: LVK
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1113066541
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1113066540}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 159485067}
m_Father: {fileID: 1044920373}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &1113066542
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1113066540}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1113066543}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &1113066543
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1113066540}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1113066544
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1113066540}
m_CullTransparentMesh: 1
--- !u!1 &1156426215
GameObject:
m_ObjectHideFlags: 0
@@ -4143,9 +4946,12 @@ MonoBehaviour:
_InitBtn: {fileID: 1956900236}
_loginGuestBtn: {fileID: 1910171037}
_loginGoogleBtn: {fileID: 1188788679}
_loginVkBtn: {fileID: 263924342}
_loginFbBtn: {fileID: 1627053318}
_loginAppleBtn: {fileID: 1668967321}
_loginTokenBtn: {fileID: 834002870}
_linkVkBtn: {fileID: 1113066542}
_checkVkBtn: {fileID: 365226266}
_linkGoogleBtn: {fileID: 1094138239}
_checkGoogleBtn: {fileID: 698899143}
_linkFacbookBtn: {fileID: 948068712}
@@ -4160,6 +4966,7 @@ MonoBehaviour:
_signoutBtn: {fileID: 1686948823}
_fbShareLinkBtn: {fileID: 827533345}
_mfbShareLinkBtn: {fileID: 1240291501}
_reviewBtn: {fileID: 678940591}
_messageTxt: {fileID: 2070325010}
--- !u!4 &1788702880
Transform:

View File

@@ -15,6 +15,8 @@ public class SDKTest : MonoBehaviour
private Button _loginGuestBtn;
[SerializeField]
private Button _loginGoogleBtn;
[SerializeField] // 海外VkId 登陆
private Button _loginVkBtn;
[SerializeField]
private Button _loginFbBtn;
[SerializeField]
@@ -22,6 +24,10 @@ public class SDKTest : MonoBehaviour
[SerializeField]
private Button _loginTokenBtn;
[SerializeField]
private Button _linkVkBtn;
[SerializeField]
private Button _checkVkBtn;
[SerializeField]
private Button _linkGoogleBtn;
[SerializeField]
private Button _checkGoogleBtn;
@@ -49,6 +55,10 @@ public class SDKTest : MonoBehaviour
private Button _fbShareLinkBtn;
[SerializeField]
private Button _mfbShareLinkBtn;
[SerializeField]
private Button _reviewBtn;
[SerializeField]
private Text _messageTxt;
@@ -62,8 +72,8 @@ public class SDKTest : MonoBehaviour
Debug.Log("SDKTest Start");
//===============================================================================
//====================== Test Server ===========================
//UnityBridgeFunc.UnityResetServerUrl("https://128-hwsfsdk-sdk-test01.qijihdhk.com");
//config.Set("AGG_SERVER", "https://128-hwsfsdk-sdk-test01.qijihdhk.com");
// UnityBridgeFunc.UnityResetServerUrl("https://128-hwsfsdk-sdk-test01.qijihdhk.com");
config.Set("AGG_SERVER", "https://128-hwsfsdk-sdk-test01.qijihdhk.com");
//====================== Test Server ===========================
//===============================================================================
//
@@ -71,6 +81,8 @@ public class SDKTest : MonoBehaviour
_loginGuestBtn.onClick.AddListener(() => OnLogin(EAccoutType.hwGuest));
_loginGoogleBtn.onClick.AddListener(() => OnLogin(EAccoutType.hwGoogle));
_loginFbBtn.onClick.AddListener(() => OnLogin(EAccoutType.hwFacebook));
_loginVkBtn.onClick.AddListener(()=> OnLogin(EAccoutType.hwVkid));
#if UNITY_IOS
_loginAppleBtn.onClick.AddListener(() => OnLogin(EAccoutType.Apple));
#endif
@@ -78,6 +90,8 @@ public class SDKTest : MonoBehaviour
_logOutBtn.onClick.AddListener(OnLogout);
_linkGoogleBtn.onClick.AddListener(OnLinkGoogle);
_checkGoogleBtn.onClick.AddListener(OncheckGoogle);
_linkVkBtn.onClick.AddListener(OnLinkVkId);
_checkVkBtn.onClick.AddListener(OnCheckVKId);
_linkFacbookBtn.onClick.AddListener(OnLinkFacebook);
_linkAppleBtn.onClick.AddListener(OnLinkApple);
_checkFacbookBtn.onClick.AddListener(OncheckFacebook);
@@ -89,6 +103,7 @@ public class SDKTest : MonoBehaviour
_signoutBtn.onClick.AddListener(OnSignoutBtn);
_fbShareLinkBtn.onClick.AddListener(OnFBShareLinkBtn);
_mfbShareLinkBtn.onClick.AddListener(OnMessengerShareLinkBtn);
_reviewBtn.onClick.AddListener(OnReview);
Debug.Log("SDKTest Started");
}
@@ -111,6 +126,8 @@ public class SDKTest : MonoBehaviour
var customId = TDAnalytics.GetDistinctId();
var customId_2 = TDAnalytics.GetDistinctId("0caf287574bd4a9bb08be8995705ef6f");
Debug.Log($"customId = {customId}, customId_2 = {customId_2}");
// UnityBridgeFunc.UnityResetServerUrl("https://128-hwsfsdk-sdk-test01.qijihdhk.com");
}
int retryAttempt;
@@ -175,10 +192,21 @@ public class SDKTest : MonoBehaviour
return;
}
// var sku = new SKUDetail();
// sku.productId = "com.arkgame.ft.1chooseone0199";
// sku.ourProductId= "comarkgameftcharge0199";
// sku.title = "$1.99 choose one" ;
// // sku.price = "16900";
// // sku.price = 169;
// sku.price = "16900";
var purchaseInfo = new JObject();
purchaseInfo["ver"] = 2;
// purchaseInfo["ver"] = 2;
purchaseInfo["pfid"] = "TestPlayer";
purchaseInfo["sum"] = sku.ProdPrice;
// purchaseInfo["sum"] = sku.ProdPrice;
purchaseInfo["customData"] = "{\"test\":\"test\"}";
// purchaseInfo[]
PaymentInfo payResult = await TYSdkFacade.Instance.Pay(sku, 1, sku.ProdPrice, purchaseInfo);
_messageTxt.text = "\n" + $"Success : {payResult.isSuccess}";
@@ -197,6 +225,7 @@ public class SDKTest : MonoBehaviour
_messageTxt.text = "products count:::" + result.products.Count;
_messageTxt.text += "\n" + result.products[0].ToString();
sku = result.products[0];
Debug.Log($"sku = {sku}");
}
else
{
@@ -319,6 +348,12 @@ eb68f93a08156e04
Debug.Log($"[AD LOG]Rewarded ad revenue paid \n {adInfo.ToString()}");
}
private async void OnLinkVkId()
{
_messageTxt.text = string.Empty;
var isSuccess = await TYSdkFacade.Instance.LinkAccount(EAccoutType.hwVkid);
_messageTxt.text = $"\n link VkId account : {isSuccess} {isSuccess.code}";
}
private async void OnLinkGoogle()
{
@@ -341,6 +376,12 @@ eb68f93a08156e04
_messageTxt.text = $"\n link facebook account : {isSuccess}";
}
private async void OnCheckVKId()
{
_messageTxt.text = string.Empty;
var isSuccess = await TYSdkFacade.Instance.LinkCheck(EAccoutType.hwVkid);
_messageTxt.text = $"\n google account linked : {isSuccess}";
}
private async void OncheckGoogle()
{
_messageTxt.text = string.Empty;
@@ -370,6 +411,11 @@ eb68f93a08156e04
UnityBridgeFunc.MessengerShareLink("title", "content", "https://www.baidu.com");
}
private void OnReview()
{
UnityBridgeFunc.Review();
}
/*
public void OnTaBtn()
{

View File

@@ -7,7 +7,7 @@ public class ConfigManager {
public static String SDK_GAMEID = "20587";
public static String SDK_PROJECTID = "20587";
public static String SDK_CLOUDID = "128";
public static String SDK_CLIENTID = "Android_5.00_tyGuest,facebook.googleplay.0-hall20587.googleplay.FishingMaster";
public static String SDK_CLIENTID = "Android_5.00_tyGuest,facebook.googleplay.0-hall20587.rustore.FishingTravel";
public static String SDK_LOGIN_SERVER_URL = "https://128-hwsfsdk-sdk-online01.qijihdhk.com";
@@ -27,5 +27,5 @@ public class ConfigManager {
public static final String PAY_TYPE_CALLBACK_FUNCTION_NAME = "SKUListResult";
public static final String FCM_NOTICE_FUNCTION_NAME = "FCMCallback";
public static final String FCM_REALNAME_CALLBACK_FUNCTION_NAME = "RealNameCallback";
}

View File

@@ -476,20 +476,125 @@ public class SDKManager {
public static void Review()
{
ReviewManager manager = ReviewManagerFactory.create(SDKWrapper.getInstance().getContext());
Task<ReviewInfo> request = manager.requestReviewFlow();
request.addOnCompleteListener(reqTask -> {
if (reqTask.isSuccessful()) {
ReviewInfo reviewInfo = reqTask.getResult();
Activity activity = UnityPlayer.currentActivity;
manager.launchReviewFlow(activity, reviewInfo);
} else {
@ReviewErrorCode int reviewErrorCode = ((ReviewException) request.getException()).getErrorCode();
Log.e(TAG,"Review Error code: " + reviewErrorCode);
// ReviewManager manager = ReviewManagerFactory.create(SDKWrapper.getInstance().getContext());
// Task<ReviewInfo> request = manager.requestReviewFlow();
// request.addOnCompleteListener(reqTask -> {
// if (reqTask.isSuccessful()) {
// ReviewInfo reviewInfo = reqTask.getResult();
// Activity activity = UnityPlayer.currentActivity;
// manager.launchReviewFlow(activity, reviewInfo);
// } else {
// @ReviewErrorCode int reviewErrorCode = ((ReviewException) request.getException()).getErrorCode();
// Log.e(TAG,"Review Error code: " + reviewErrorCode);
// }
// });
// Runnable
RuStoreReview();
}
//- Rustore相关接口
public interface ReviewResultCallback {
void onReviewSuccess(JSONObject result);
void onReviewError(int code, String msg);
}
// # 第一步 请求评分request
public static void RequestRustoreReView(ReviewResultCallback callback) {
JSONObject json = new JSONObject();
try {
json.put("action", "ACTION_REQUEST_REVIEW");
} catch (JSONException e) {
throw new RuntimeException(e);
}
SDKAPI.getIns().thirdExtend(json.toString(), (code, msg) -> {
Log.e(TAG, "====>RequestRustoreReView code= " + code + " msg= " + msg);
JSONObject result = new JSONObject();
try {
result.put("code", code);
if (code == SDKCallBack.Extend.EXTEND_CODE_SUCCESS) {
Log.e(TAG, "RequestRustoreReView Success: " + msg);
//获取成功msg即为对应的json字符串
// 成功时调用回调
if (callback != null) {
callback.onReviewSuccess(result);
}
} else {
Log.e(TAG, "RequestRustoreReView Failed: " + msg);
result.put("thirdExtend_errStr", msg);
// 失败时调用回调
if (callback != null) {
callback.onReviewError(code, msg);
}
}
//code 说明:
// 0 : 获取成功
// 26012001 : RuStoreNotInstalledException
// 26012002 : RuStoreOutdatedException
// 26012003 : RuStoreUserUnauthorizedException
// 26012004 : RuStoreUserBannedException
// 26012005 : RuStoreApplicationBannedException
// 26012006 : RuStoreRequestLimitReached
// 26012007 : RuStoreReviewExists
// 26012008 : RuStoreInvalidReviewInfo
// 26012009 : RuStoreException
// -1 : 其他未知异常
// msg 说明:
// 失败时为error msg
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_REVIEW_CALLBACK, result.toString());
} catch (Exception e) {
SDKLog.e("SDKManager-RequestRustoreReView-Exception" + e);
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_REVIEW_CALLBACK, result.toString());
}
});
}
// # 第二步展示评分UI 。请求评分request成功后调用且一次成功的request只能调用一次展示
public static void LaunchRustoreView(){
JSONObject json = new JSONObject();
try {
json.put("action", "ACTION_LAUNCH_REVIEW");
} catch (JSONException e) {
throw new RuntimeException(e);
}
SDKAPI.getIns().thirdExtend(json.toString(), (code, msg) -> {
Log.e(TAG, "====>LaunchRustoreView code= " + code + " msg= " + msg);
JSONObject result = new JSONObject();
try {
result.put("code", code);
if (code == SDKCallBack.Extend.EXTEND_CODE_SUCCESS) {
Log.e(TAG, "LaunchRustoreView Success: " + msg);
//获取成功msg即为对应的json字符串
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_LAUNCH_REVIEW, result.toString());
} else {
Log.e(TAG, "LaunchRustoreView Failed: " + msg);
result.put("thirdExtend_errStr", msg);
}
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_LAUNCH_REVIEW, result.toString());
} catch (Exception e) {
SDKLog.e("SDKManager-LaunchRustoreReView-Exception" + e);
// UnityPlayer.UnitySendMessage(ConfigManager.UNITY_FACADE_NAME, ConfigManager.RUSTORE_LAUNCH_REVIEW, result.toString());
}
});
}
public static void RuStoreReview(){
RequestRustoreReView(new ReviewResultCallback() {
@Override
public void onReviewSuccess(JSONObject result) {
LaunchRustoreView();
}
@Override
public void onReviewError(int code, String msg) {
}
});
}
public static void FBShareLink(String title, String content, String url)
{
Log.e(TAG,"FBShareLink : " + title + " " + content + " " + url);

View File

@@ -38,7 +38,9 @@ namespace tysdk
{"google", EAccoutType.hwGoogle},
{"fb", EAccoutType.hwFacebook},
{"tyGuest", EAccoutType.hwGuest},
{"ios13", EAccoutType.Apple}
{"ios13", EAccoutType.Apple},
{"vk.global.app",EAccoutType.hwVkid},
};
private static EAccoutType ConvertAccoutType(string accountType)
@@ -138,6 +140,11 @@ namespace tysdk
public static bool IsLoggedIn => _accountInfo != null;
// 记录一下渠道,保证客户端可以调用
public static string Channel => "hwVkid";
//-
public void Logout()
{
@@ -159,6 +166,7 @@ namespace tysdk
var userId = (int)ulong.Parse(deviceId, System.Globalization.NumberStyles.HexNumber);
Debug.Log($"userId -> {userId}");
_accountInfo = new AccountInfo()
{
userId = userId,
@@ -171,7 +179,7 @@ namespace tysdk
};
#elif UNITY_ANDROID || UNITY_IOS
var task = TYSDKCallbackManager.Instance.RegisterCallback<LoginInfo>(TimeSpan.FromSeconds(30));
var task = TYSDKCallbackManager.Instance.RegisterCallback<LoginInfo>(TimeSpan.FromSeconds(120));
UnityBridgeFunc.UnityLogin(accoutType);
@@ -432,7 +440,7 @@ namespace tysdk
list.Add(appid);
#if UNITY_ANDROID
string clientid = "Android_5.00_tyGuest,facebook.googleplay.0-hall20587.googleplay.FishingMaster";
string clientid = "Android_5.00_tyGuest,facebook.googleplay.0-hall20587.googleplay.FishingMaster";
#elif UNITY_IOS
string clientid = "IOS_5.00_tyGuest,facebook,appStore.appStore.0-hall20587.appStore.FishingMaster";
#endif

View File

@@ -52,10 +52,18 @@ namespace tysdk
};
return result;
#elif UNITY_ANDROID
var pType = "googleiab.global.app";
// var pType = "googleiab.global.app";
// var pType = tysdk.AccountInfo.googlePayType;
// if (_accountInfo.channel == EAccoutType.hwVkid)
// pType = tysdk.AccountInfo.hwPayType;
var pType = tysdk.AccountInfo.hwPayType;
var task = TYSDKCallbackManager.Instance.RegisterCallback<PaymentInfo>(TimeSpan.FromMinutes(1));
@@ -104,8 +112,8 @@ namespace tysdk
Debug.Log("[TYSdkFacade] pay callback:" + json);
var jresult = JObject.Parse(json);
var result = new PaymentInfo();
result.code = jresult["code"].ToString();
result.msg = jresult["errStr"].ToString();
result.code = jresult["code"]?.ToString();
result.msg = jresult["errStr"]?.ToString();
TYSDKCallbackManager.Instance.TryTriggerCallback(result);
}
@@ -130,7 +138,7 @@ namespace tysdk
//商品列表的回调
public void SKUListResult(string json)
{
Debug.Log("[TYSdkFacade] GetSKUList callback");
Debug.Log($"[TYSdkFacade] GetSKUList callback -> accountChannel: {_accountInfo.channel}");
var jresult = JObject.Parse(json);
int code = int.Parse(jresult["code"].ToString());
var result = new ProductListInfo();
@@ -139,11 +147,26 @@ namespace tysdk
string productStr = jresult["respObj"].ToString();
result.code = code;
#if UNITY_ANDROID && !UNITY_EDITOR
var jsonObjList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SKUDetail>>(productStr);
result.products = jsonObjList;
// var accountChannel = _accountInfo.channel;
// if (accountChannel == EAccoutType.hwVkid)
// {
// result.ReadSkuFromData(productStr, accountChannel);
// }
// else
// {
// // var jsonObjList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SKUDetail>>(productStr);
// // result.products = jsonObjList;
// result.BaseReadSkuFromData(productStr);
// }
// result.BaseReadSkuFromData(productStr);
#elif UNITY_IOS && !UNITY_EDITOR
result.ReadSKUFromJson(productStr);
#endif
}
TYSDKCallbackManager.Instance.TryTriggerCallback(result);

View File

@@ -1,6 +1,8 @@
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace tysdk
{
@@ -9,10 +11,17 @@ namespace tysdk
hwGoogle,
hwFacebook,
hwGuest,
hwRustore,
hwVkid,
Apple,
none
}
public static class AccountInfo
{
public static string hwVkid = "vk.global.app";
public static string hwPayType = "rustore.global.app";
public static string googlePayType = "googleiab.global.app";
}
public class LoginInfo
{
@@ -91,6 +100,18 @@ namespace tysdk
}
#endif
// public List<SKUDetail> BaseReadSkuFromData(string productData)
// {
// var jsonObjList = JsonConvert.DeserializeObject<List<SKUDetail>>(productData);
// products = jsonObjList;
// return jsonObjList;
// }
// public List<SKUDetail> ReadSkuFromData(string productData, EAccoutType accountChannel)
// {
// var jsonObjList = JsonConvert.DeserializeObject<List<SKUDetail>>(productData);
// products = jsonObjList;
// return jsonObjList;
// }
}
#if UNITY_IOS
@@ -115,30 +136,57 @@ namespace tysdk
}
}
#else
public class SKUDetail
{
public string description;
public string ourProductId;
public string price;
public string price_amount_micros;
public string price_currency_code;
public string productId;
public string title;
public string type;
public override string ToString()
// 注意 这个值支持Rustore
// #if UNITY_RUSTORE_ANDROID
public class SKUDetail
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this);
public string description;
public string ourProductId;
public string productId;
public string price;
public string title;
public string currency;
public string price_amount; //- 具体的值
//- 防止编译报错
public string price_currency_code => currency;
public string ProdPriceStr => $"₽{ProdPrice}";
public float ProdPrice => float.Parse(price) / 100 ;
public string ProdID => ourProductId;
public string ProdKey => productId;
public override string ToString()
{
return JsonConvert.SerializeObject(this);
}
}
public string ProdPriceStr => price;
public float ProdPrice => float.Parse(price_amount_micros) / 1000000;
public string ProdID => ourProductId;
public string ProdKey => productId;
}
// #else
// public class SKUDetail
// {
// public string description;
// public string ourProductId;
// public string price;
// [JsonProperty("price_amount_micros")]
// public string price_amount_micros { get; set; }
// public string price_currency_code;
// public string productId;
// public string title;
// public string type;
//
// public override string ToString()
// {
// return Newtonsoft.Json.JsonConvert.SerializeObject(this);
// }
//
// public string ProdPriceStr => price;
// public float ProdPrice => float.Parse(price_amount_micros) / 1000000;
//
// public string ProdID => ourProductId;
// public string ProdKey => productId;
// }
// #endif
#endif
public class ATTInfo
{
public bool isAccepted;

View File

@@ -107,9 +107,19 @@ namespace tysdk
public static void UnityLogin(EAccoutType accoutType)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
if (accoutType == EAccoutType.hwVkid)
{
sdkManager.CallStatic("UnityLogin", accoutType.ToString());
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("UnityLogin",AccountInfo.hwVkid);
}
}
else
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("UnityLogin", accoutType.ToString());
}
}
}
@@ -132,9 +142,14 @@ namespace tysdk
public static void LinkAccount(EAccoutType accoutType)
{
string userId = TYSdkFacade.TYAccountInfo.strUserId;
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
if (accoutType == EAccoutType.hwVkid)
{
string userId = TYSdkFacade.TYAccountInfo.strUserId;
sdkManager.CallStatic("LinkAccount",AccountInfo.hwVkid,userId);
}
else
{
sdkManager.CallStatic("LinkAccount", accoutType.ToString(), userId);
}
}
@@ -151,17 +166,37 @@ namespace tysdk
public static void UnlinkAccount(EAccoutType accoutType)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
if (accoutType == EAccoutType.hwVkid)
{
sdkManager.CallStatic("UnlinkAccount", accoutType.ToString());
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("UnlinkAccount",AccountInfo.hwVkid);
}
}
else
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("UnlinkAccount", accoutType.ToString());
}
}
}
public static void LinkCheck(EAccoutType accoutType)
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
if (accoutType == EAccoutType.hwVkid)
{
sdkManager.CallStatic("LinkCheck", accoutType.ToString());
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("LinkCheck",AccountInfo.hwVkid);
}
}
else
{
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("LinkCheck", accoutType.ToString());
}
}
}
@@ -232,6 +267,7 @@ namespace tysdk
using(var sdkManager = new AndroidJavaClass(SDK_CLASS))
{
sdkManager.CallStatic("Review");
// sdkManager.CallStataic("RuStoreReview");
}
}