08-09-2012 02:54 PM
Hello, I am using Payment SDK v1.8 in my app. I have uploaded the test app on App world with list of digital goods and their SKUs. Now I am trying to retrieve the list of Digital Goods using: DigitalGoods.get(digitalGoodsListener); and I am getting callback in public void success( DigitalGood[] digitalGoods ). But I am not getting anything in digitalGoods.length. Can anyone please help? -Thanks in Advance. |
08-15-2012 10:34 AM
08-15-2012 11:28 AM
08-20-2012 09:35 AM
Success should return all DigitalGoods available on the system, PurchaseHistory is the call to retrieve purchases made by the user.
08-20-2012 02:46 PM
Are you sure. In my app i use the success function to retrieve OWNED goods.
For example I only have 1 good, so I do
if (goods.length > 0)
fullversion = true //they bought the good and have full access to my app
This has worked fine, I am assuming if it retrieved all the goods offered by the App then it would always allow everyone to be able to access my app full version.
08-21-2012 07:51 AM
I am positive, I have tested this several times and it is exactly how it is explained in the Release Notes:
DigitalGoods.get() returns a list of digital goods available for purchase in the application.
PurchaseHistory.get()
returns the user's purchase history for an application.
http://docs.blackberry.com/en/developers/deliverab
08-21-2012 07:01 PM - edited 08-21-2012 07:02 PM
My apologies I was unaware of DigitalGoods.get();
In fact I am using PurchaseHistory.get() to retrieve my purchases when I checked my source now.
In regards to the original question. make sure you have created the digital goods first of all, are they in draft status?
Perhaps the goods will only be listed once they are submitted and approved. This is just a guess of course, perhaps someone else could chime in on this thought.
08-22-2012 08:43 PM
Thank You for the reply and Sorry for the late reply.
Finally I got the correct digitalGoods array by uploading the app in draft state.
I have another question:
I want to test Purchase request: i.e. PurchaseResult purchaseResult = engine.purchase(arguments.build());
I do not want to do actual money transaction. Can you please tell me how can I do this?
-Thanks again.
08-22-2012 09:37 PM - edited 08-22-2012 09:40 PM
Good to hear.
All you need to do is run the line that you've done to process a purchase, then if you want to test it just go to sandbox in your developer portal and add your BBID e-mail that you are testing with. Once you do this, just run the purchase on your phone and use the same BBID to login for the payment, purchase it and it will not charge you (Even if it does have the price on the checkout screen).
You can check to see if the payment was successful directly after by checking the method purchaseResult.isSuccessful();