in this presentation we give a brief intro to Social Gold, an overview of the in-flash solution architecture followed by a step by step integration example.
23. In short . . .You focus on building awesome games
24. We provide a frictionless and secure payments experience within your game
25. We help you maximize revenue without sacrificing engagementProduct descriptionA SWC that less you initiate a UI to enable customer paymentsYour app receives events when the payment completes
26. You choose whether the UI is an html browser popup or a Flash display objectProduct architecture
30. Existing ID platform (FB, MS or your own)roadmapUX More payment methods in Flash
31. Support for portals/ non-hosted sitesPayments Stuff More payment methods (Latin America, etc)
32. Local currencies (36+ currencies¡)IntegrationYou¡¯ll need . . .Valid merchant accounthttp://getsocialgold.comConfigured virtual currency Flash offerhttp://www.jambool.com/socialgold/offersSocial Gold Flash API SWChttp://www.jambool.com/socialgold/flash/downloadServer side environment (PHP, Ruby, JSP, etc.)Installation & documentationUnpack Social Gold API zip file
34. Open dist/doc/index.html and select SocialGoldService (from bottom left frame)Getting started: step oneSend user_id, signing key and environment to your app
35. # 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_iraw_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>
39. 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¡¯);
41. 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");}
43. // 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);}