in app purchases
Monte Goulding
monte at sweattechnologies.com
Tue Feb 26 23:27:23 EST 2013
Howdy
I haven't tested my code yet but from what I can work out the example in the lesson doesn't deal with restoring purchases. It also doesn't deal with there being an interruption/shutdown between sending the purchase request and getting the purchaseStateUpdate message with the paymentRecieved state.
Here's some example code which I think will handle these situations:
on preOpenStack
if the environment = "mobile" then
if mobileCanMakePurchases() then
mobileEnablePurchaseUpdates
put "file:"&specialFolderPath("library")&"/furstrun.dat" into tURL
if not url tURL then
put true into url tURL
mobileRestorePurchases
end if
-- install interrupted products
repeat for each line tPurchaseID in mobilePurchases()
purchaseStateUpdate tPurchaseID
end repeat
end if
end if
end preOpenStack
on purchaseProduct pProductID
if not mobileCanMakePurchase() then
answer "Enable in app purchases to buy this product"
else
mobilePurchaseCreate pProductID
put the result into tID
mobilePurchaseSendRequest tID
end if
end purchaseProduct
on purchaseStateUpdate pPurchaseID
switch mobilePurchaseState(pPurchaseID)
case "paymentReceived"
case "restored"
put specialFolderPath("documents")&"/"&mobilePurchaseGet("productID")&".dat" into tPath
if there is not a file tPath then
put url ("binfile:yourserver.com/products/"&&mobilePurchaseGet("productID")&".dat") into url ("binfile:"&tPath)
end if
mobilePurchaseConfirmDelivery pPurchaseID
break
case "error"
answer "Error occured during purchase handling:" & return & return & mobilePurchaseError(pPurchaseID)
break
end switch
end purchaseStateUpdate
--
M E R Goulding
Software development services
Bespoke application development for vertical markets
mergExt - There's an external for that!
More information about the use-livecode
mailing list