Android Question Need help with getting subscription prices

tsteward

Well-Known Member
Licensed User
Longtime User
My app keeps getting rejected by Google due to subscription price presented to the user being misleading.
What am I doing wrong or how can I fix this to show the correct local price.

"sprice" is supposed to contain the price of the subscription

Attached is the image from google that the user in some country somewhere sees.
US, Aus and many others see the correct price.

B4X:
Dim sf As Object = Starter.billing.QuerySkuDetails("subs", Array(Starter.ADS_SDK_ID4,Starter.ADS_SDK_ID5))
        Wait For (sf) Billing_SkuQueryCompleted (Result As BillingResult, SkuDetailsList As List)
        Starter.myLog.Add($"(GetAllProductPrice) Info received from PS Result - ${Result.ResponseCodeString}"$)
        If Result.IsSuccess And SkuDetailsList.Size > 0 Then
            clvSubscribe.Clear
            For Each Sku As SkuDetails In SkuDetailsList
                Dim sPrice As String
                If Sku.Price = "" Then
                    Dim offers As List = Sku.As(JavaObject).RunMethod("getSubscriptionOfferDetails", Null)
                    Dim offer As JavaObject = offers.Get(0)
                    Dim PricingPhases As JavaObject
                    PricingPhases = offer.RunMethod("getPricingPhases", Null)
                    Dim l As List = PricingPhases.RunMethod("getPricingPhaseList", Null)
                    Dim PricingPhase As JavaObject
                    PricingPhase = l.Get(0)
                    sPrice = PricingPhase.RunMethod("getFormattedPrice", Null)
                Else
                    sPrice = Sku.Price
                End If
                Dim p As B4XView = xui.CreatePanel("")
                p.SetLayoutAnimated(0, 0, 0, clvSubscribe.AsView.Width, 200dip)
                p.LoadLayout("subsrowlayout")
                Dim mydesc As String = ""
                If Sku.Sku = "lara202312" Then
                    clvSubsItemTitle.Text = B4XPages.MainPage.loc.Localize("LARA 12 Month Subscription")
                    mydesc = Sku.Description & CRLF & CRLF & "Free Trial - Cancel subscription withing 7 days and there will be no charge"
                End If
                If Sku.Sku = "lara202306" Then
                    clvSubsItemTitle.Text = B4XPages.MainPage.loc.Localize("LARA 6 Month Subscription")
                    mydesc = Sku.Description & CRLF & CRLF & "Free Trial - Cancel subscription withing 7 days and there will be no charge"
                End If
                If Starter.SKU_Purchased = Sku.Sku Then
                    clvSubsItemAmount.Text = B4XPages.MainPage.loc.Localize("Active")
                    clvSubsItemButton.Text = B4XPages.MainPage.loc.Localize("Cancel")
                    mydesc = Sku.Description & CRLF & CRLF & Starter.productID & CRLF & DateTime.Date(Starter.purchaseTime) & " - " & DateTime.Time(Starter.purchaseTime)
                Else
                    clvSubsItemAmount.Text = sPrice
                    clvSubsItemButton.Tag = Sku.Sku
                    clvSubsItemButton.Text = B4XPages.MainPage.loc.Localize("Buy")
                    If Main.AppSubscriptionActive = True Then
                        clvSubsItemButton.Enabled = False
                    End If
                End If
                clvSubsItemDesc.Text = mydesc
                clvSubscribe.Add(p,Sku.Title)
            Next
            clvSubscribe.AsView.Visible = True
        else if Result.ResponseCodeString = "FEATURE_NOT_SUPPORTED" Then
            xui.MsgboxAsync($"Sorry your version of Google Play Store is not supported${CRLF}Result - ${Result.ResponseCodeString}"$, "Not Supported")
        End If
 

Attachments

  • IN_APP_EXPERIENCE-4524.png
    IN_APP_EXPERIENCE-4524.png
    215.2 KB · Views: 40

asales

Expert
Licensed User
Longtime User
I think the problem is because you don't show the price on this screen:

1720107411879.png


Check out these paywall examples:

I follow these examples and I have no problem publishing apps, including showing prices in other currencies.
 
Upvote 0

tsteward

Well-Known Member
Licensed User
Longtime User
I think the problem is because you don't show the price on this screen:

View attachment 155190

Check out these paywall examples:

I follow these examples and I have no problem publishing apps, including showing prices in other currencies.
I have had no problem publishing for the last 15 years
I have followed the examples exactly (I thought) but sPrice = Sku.Price is returning Free instead of the price but not in all cases as per attached image from my phone

My inability to solve this is screwing me big time :(
Really need some help please
 

Attachments

  • 449083109_372541702514270_492780690780518753_n.jpg
    449083109_372541702514270_492780690780518753_n.jpg
    69.4 KB · Views: 14
Upvote 0

asales

Expert
Licensed User
Longtime User
I have had no problem publishing for the last 15 years
Google always change your policies and rules.
My app has 10 years in Play Store and now get a warning from Google.
You cannot assumes that your app it is always in agreement with the new policies.
I think the Google don't check all the content of the app and years later can find a problem in the app and does not allow the update.

I have followed the examples exactly (I thought) but sPrice = Sku.Price is returning Free instead of the price but not in all cases as per attached image from my phone

My inability to solve this is screwing me big time :(
Really need some help please
I don't think the "Free" word is returned in Sku.Price.
I think the problem is somewhere else.

Did you check if the labels in the Visual Designer has this word "Free" in the Text property?

Maybe, in some cases, when you open the screen with the subscription information, there is no time to load the online information, and it shows the content ("Free") of the Text field in the label.

Did you load the information and price of subscriptions when you open the app, in Starter or B4XMainPage modules?
 
Upvote 0

tsteward

Well-Known Member
Licensed User
Longtime User
I know "Free" is being returned where else is it coming from? I search my app and it is no where.
You can see my code above there is no Free

My app is screwed money going down the drain. It must be my fault but I just know how or where
 
Upvote 0

asales

Expert
Licensed User
Longtime User
You can see my code above there is no Free
I don't talk about the "Free" word in your code, I'm talking about the layout.

If possible, share the layout of this screen:

1720214445179.png


And you don't answered this question:
Did you load the information and price of subscriptions when you open the app, in Starter or B4XMainPage modules?
 
Upvote 0

tsteward

Well-Known Member
Licensed User
Longtime User
Google always change your policies and rules.
My app has 10 years in Play Store and now get a warning from Google.
You cannot assumes that your app it is always in agreement with the new policies.
I think the Google don't check all the content of the app and years later can find a problem in the app and does not allow the update.


I don't think the "Free" word is returned in Sku.Price.
I think the problem is somewhere else.

Did you check if the labels in the Visual Designer has this word "Free" in the Text property?

Maybe, in some cases, when you open the screen with the subscription information, there is no time to load the online information, and it shows the content ("Free") of the Text field in the label.

Did you load the information and price of subscriptions when you open the app, in Starter or B4XMainPage modules?
I have checked the labels but the layout is attached as requested.
I do not load at startup its in the b4xmainpage
After the app has loaded you can select Menu then Select subscriptions, it will then go to the routine attached in the first post here.

Your help is very much appreciated, I really need to get this sorted this weekend before I lose more clients
 

Attachments

  • subsrowlayout.bal
    3.7 KB · Views: 5
Upvote 0

tsteward

Well-Known Member
Licensed User
Longtime User
Just realised that row layout will be different from me trying different things :(
 
Upvote 0

asales

Expert
Licensed User
Longtime User
I have checked the labels but the layout is attached as requested.
My guess was wrong. I don't know were the Free word are from.
Did you check the plans in the Google Play Console? There are nothing about Free price?
I do not load at startup its in the b4xmainpage
After the app has loaded you can select Menu then Select subscriptions, it will then go to the routine attached in the first post here.

Your help is very much appreciated, I really need to get this sorted this weekend before I lose more clients
I put my subscription routine in the Starter. There are a delay to load the informations.
When I open the screen to user made the subscription, I only check the values loaded when the app is opened.
Check this example, based in the original example from Erel. The informations are loaded in the B4XMainPage.
 
Upvote 0
Top