Music Store/KaraokeCloud/IssueTracker

From kJams Wiki
Jump to navigation Jump to search

Questions that must be answered by someone at DigiTrax are on a separate page

hey! MVP is done!

MVP is above this line

All Subscription Types

currently, you have listed:

Subsciption Types
2	Unlimited	$9.99	karoakecloud
6	$99 Unlimited	$99.99	unlimited download and streaming

what are the future IDs for these:

kTier_KJ_Streaming
kTier_KJ_DL_Daily
kTier_KJ_DL_Monthly
kTier_KJ_DL_Yearly

also: shouldn't the names be "2: Home Streaming" and "6: KJ Tethering - Yearly"?

Free is default subscription. You cannot subscribe to free, it is set automatically if you do not have another active subscription. Developer is a special subscription. You cannot subscribe to it, we subscribe you to it when you sign up as a dev. You can rename the subscriptions to whatever you'd like.

SOLVED items are below this line

dev.karaokecloud.com/api fails when syncing / purchasing

Solved.
when i request an mp3/cdg (for streaming) the dev API works fine. when i request a zip (for tether-sync / purchase), it fails with a 403 code (not authorized)

user can preview without signing up for streaming

Solved.
as discussed, kjams will provide a 20 second preview

I need to know the proper method. Will you add:

kJSON_Use_PREVIEW  = 3

? if so, then you may want to actually only serve up HALF the mp3+cdg. Literally just cut the file off half way thru. cuz otherwise this could be exploited to download the library without paying.

Bug: Can't turn off then back on "Auto Renew"

Solved.
Currently, if i attempt to turn off "auto renew", i get a "Access Denied". Please test this yourself, using your special build of kJams

  1. run kjams
  2. go to prefs->stores and turn on "Karaoke Cloud"
  3. quit kjams and run again
  4. go to prefs->stores->edit music store settings->karaoke cloud
  5. create an account or log in
  6. subscribe to a tier
  7. click the "disable" -> may work, so click "enable" to re-enable, then repeat. now it will fail.

Need a different "Developer" API design

Solved.
currently the notion of "developer" is indicated by a Tier. we need to separate this notion out into something separate. so that "developer" may be turned on or off (by me, the dev, perhaps by allowing it ONLY from my static IP address), on any account i create (only in the debug version, of course). this account now marked as "dev" then can be used to test ALL tiers (free, home stream, kj tether, and all the rest we will add later. the dev account either automatically has "free money" in it, or is not actually charged anything when testing purchases and tier changes

Testing API to reset account to "free"

Solved.
I need a method to cancel an account back to the "free" level. not just "will expire", but actually "has expired and it's now back to free". I need this to test all the possible ways to upgrade from free (eg: from Lite "Free" to "Home Streaming", from Pro "Free" to "Home Streaming" or to "KJ Tethering", and Pro upgrade from Home To KJ. Also allows testing from there to canceling auto-renew.

Method for determining when to update the catalog

Solved.
This seems to be working fine now.

I depend on the "Last-Modified" field from the header of the "Catalog.zip" file to know when i need to re-download the catalog.

however, it seems that this date-stamp changes every single time i access it.

can you fix that? or is there some OTHER file i need to check the date stamp on in order to know when the catalog is out of date?

take 1: note the time stamp

    0: http://api.karaokecloud.com/catalog/Catalog.zip
    0: Type: <CFDictionary>, Value: <<CFBasicHash 0x5c36860 [0xac727840]>{type = mutable dict, count = 9,
entries =>
	1 : Case Insensitive Key: Etag = <CFString 0x5c40c50 [0xac727840]>{contents = ""cca6262eab2cd1:0""}
	2 : Case Insensitive Key: Last-Modified = <CFString 0x5c3abc0 [0xac727840]>{contents = "Thu, 25 Oct 2012 19:53:20 GMT"}

take 2: one minute later:

    0: http://api.karaokecloud.com/catalog/Catalog.zip
    0: Type: <CFDictionary>, Value: <<CFBasicHash 0x1e5ecbd0 [0xac727840]>{type = mutable dict, count = 9,
entries =>
	1 : Case Insensitive Key: Etag = <CFString 0x1e5e91e0 [0xac727840]>{contents = ""1cb64f8deab2cd1:0""}
	2 : Case Insensitive Key: Last-Modified = <CFString 0x1ce699b0 [0xac727840]>{contents = "Thu, 25 Oct 2012 19:54:32 GMT"}

"unlimited" user can pre-download library

Solved.
I need to know the proper method for doing this. eg: for the "Use" parameter, you specify these values:

kJSON_Use_DOWNLOAD = 0
kJSON_Use_STREAM   = 1

So may i assume that you will add:

kJSON_Use_TETHER   = 2

? Or what is the proper way to request songs for tethering?

The new $99 tier allows you to download all the songs
then how will you (your server) differentiate between tethering and streaming a song? ie: if i am to use kJSON_Use_STREAM to pre-download the tether'd songs, then this makes it so you can't differentiate between streams and tether-downloads. i think for your records you will like to have this differentiation in your logs so that you can do proper analytics / royalty payments.

is there online documentation for all calls i can make?

Solved.

Not right now. We are just sending examples specific to questions
i've created some here

is it true there are only 3007 songs?

Solved. --More songs were added last night. However, they did discover that some files may not have been uploaded.

user can recover account number based on email and some other validation

pending. Implemented.
seems that all that is needed is the email address and password for the account and you're in. on your web site, you already have a "i forgot my password" workflow, so this seems like it's all set.

how to specify "use voucher credit" vs. "use credit card"

Solved. in my "developer account" i have eg: $100 in voucher credits.
in the "PaymentMethod" field, i currently specify "0" as the number, and it works now, deducting from the credits shown. will it be that credit cards will have a number > 0?

-- Voucher credits are always used before credit card. If a voucher code can't cover the full amount, the credit card takes over.

user can create new account

pending Solved.

user can subscribe to one of two tiers

pending Solved.

user can add/edit/remove credit card in account

pending Solved.

user can re-download all previously purchased songs

pending Solved.

mark free songs as "free" in the Catalog.zip

pending Solved.

For songs that can stream for free use "FreeStream"

secure cert required

Solved.
bad_cert.png