social gold in-flash webinar jan 2010
DESCRIPTION
These are the slides from our January presentation of our in-Flash payment solution.It gives a brief overview of Social Gold as well as a technical presentation that shows how to integrate the our in-Flash solution with your Flash game.Enjoy!TRANSCRIPT
In-Flash Payments Overview
AGENDA
•About Us•In-Flash Payments: Overview•Architecture•Security•Roadmap•Integration
WHAT WE ARE
A platform that allows you to monetize virtual goods via direct
payments and optimize via in-depth analytics
WHAT WE OFFER
•Micropayments & Subscriptions•Virtual Currency: txns & inventory
mgmt•Reporting & Analytics•Fraud Control•Customer Service
SERVICES ACCESSED VIA API
IN-FLASH PAYMENTSUser Benefits- No interruption of flow- No additional login required
Developer Benefits- Get callbacks directly in AS3 or Flex- No reload required – less server load- Preserve “flow” and user
engagement
IN-FLASH PAYMENTS FLOW
CREDIT CARD ENTRY: IN-GAME
BILLING ADDRESS ENTRY: IN-GAME
CONFIRMATION: IN-GAME
SEAMLESS RETURN TO GAME
Balance is updated in real time,
while game state is
maintained.
SINGLE-CLICK REPEAT PURCHASES
SINGLE-CLICK PAYPAL, TOO!
IN SHORT . . .•You focus on building awesome
games
•We provide a frictionless and secure payments experience within your game
•We help you maximize revenue without sacrificing engagement
PRODUCT DESCRIPTIONA SWC that less you initiate a UI to enable customer payments
•Your app receives events when the payment completes
•You choose whether the UI is an html browser popup or a Flash display object
PRODUCT ARCHITECTURE
SECURITY OBJECTIVESPriorities- Secure customer data- Secure developer credentials
Starting Points- Trusted merchants (you)- Merchant-hosted games- Existing ID platform (FB, MS or your
own)
ROADMAPUX- More payment methods in Flash- Support for portals/ non-hosted sites
Payments Stuff- More payment methods (Latin
America, etc)- Local currencies (36+ currencies…)
INTEGRATIONYou’ll need . . .•Valid merchant account
http://getsocialgold.com
•Configured virtual currency Flash offerhttp://www.jambool.com/socialgold/offers
•Social Gold Flash API SWChttp://www.jambool.com/socialgold/flash/download
•Server side environment (PHP, Ruby, JSP, etc.)
INSTALLATION & DOCUMENTATION
•Unpack Social Gold API zip file
•Add the dist/SocialGold.swc file to your project library path
•Open dist/doc/index.html and select SocialGoldService (from bottom left frame)
GETTING STARTED: STEP ONE
Send user_id, signing key and environment to your
app
# Add the following to a Controller or Helper:def signing_key_for_user( user_id ) offer_id = "your offer id here” merchant_secret_key = "your secret key here” current_period = (Time.now.to_i * 1.0 / 1.day).to_i raw_signing_key = "#{offer_id}#{user_id}#{current_period}#{merchant_secret_key}” return Digest::MD5.hexdigest(raw_signing_key)end
# Add the following to an ERB template:<html><head> <script type="text/javascript" src="scripts/swfobject-1.5.1.js"> </script> <script> function embed() { var so = new SWFObject("YourApplication.swf", "swf", "100%", "100%"); so.addVariable("userId", "<%= user_id %>"); so.addVariable("signingKey", "<%= signing_key_for_user(user_id) %>"); so.addVariable("environment", "<%= environment %>"); so.write("flash-content"); } </script></head><body onload="embed()"> <center> <div id="flash-content"></div> </center></body></html>
GETTING STARTED: STEP TWO
Collect flashvars in ActionScript
// ActionScript Project:this.parameters = root.loaderInfo.parameters;
// Flex Framework Project:this.parameters = Application.application.parameters;
GETTING STARTED: STEP THREE
Instantiate & Configure the SocialGoldService
service = new SocialGoldService();service.userId = parameters.userId;service.signingKey = parameters.signingKey;service.offerId = ‘yourofferidhere’;
// Set a display object container for the buyCurrency UI:service.modalParent = stage;
// Pass in ‘sandbox’ or ‘production’ for environment:service.environment = parameters.environment;
// Set true to use Flash UI for buyCurrency calls:service.useInAppPayments = true;
// (Optional) Set true when debugging:service.debug = (parameters.environment != ‘production’);
GETTING STARTED: STEP FOUR
Call an API method & Handle events on the
request
var request:SocialGoldRequest = service.buyCurrency();
// Called on Success:request.addEventListener(SocialGoldEvent.SUCCESS,
buyCurrencySuccessHandler);// Called on Failure:request.addEventListener(SocialGoldEvent.FAILURE, buyCurrencyFailureHandler);// Called after every request:request.addEventListener(SocialGoldEvent.COMPLETE, buyCurrencyCompleteHandler);
private function buyCurrencySuccessHandler(event:SocialGoldEvent):void { trace(">> buyCurrency SUCCESS");} private function buyCurrencyFailureHandler(event:SocialGoldEvent):void { trace(">> buyCurrency FAILURE");} private function buyCurrencyCompleteHandler(event:SocialGoldEvent):void { trace(">> buyCurrency COMPLETE");}
GETTING STARTED: OPTIONAL STEP
Show & Hide a loading animation
// Called when UI load starts:request.addEventListener(SocialGoldEvent.UI_LOAD_STARTED,
uiLoadStartedHandler);// Called when UI load is complete:request.addEventListener(SocialGoldEvent.UI_LOAD_COMPLETED, uiLoadCompletedHandler);
private function uiLoadStartedHandler(event:SocialGoldEvent):void {trace(">> uiLoadStartedHandler");addChild(yourLoadingAnimationInstance);
}
private function uiLoadCompletedHandler(event:SocialGoldEvent):void {trace(">> uiLoadCompletedHandler");removeChild(yourLoadingAnimationInstance);
}
GETTING STARTED: FINAL STEP
Ship it!
Virtual Economies. Real Revenues.