29
Monetizing with PayPal on Mobile Fabio Sisinni, Director, Mobile Product Management Kent Griffin, Mobile Product Manager Praveen Alavilli, Developer Evangelist Anshu Gupta, Mobile Product Development

Monetizing with PayPal on Mobile

Embed Size (px)

Citation preview

Page 1: Monetizing with PayPal on Mobile

Monetizing with PayPal on Mobile

Fabio Sisinni, Director, Mobile Product Management Kent Griffin, Mobile Product Manager

Praveen Alavilli, Developer EvangelistAnshu Gupta, Mobile Product Development

Page 2: Monetizing with PayPal on Mobile

WWW.X.COM

AGENDA

• What is PayPal ?• PayPal on Mobile

• For Consumers • For Merchants/Sellers (Mobile Checkout)• For Developers (Mobile Payments Library)

• Q & A• Demo

04/11/2023 2

Page 3: Monetizing with PayPal on Mobile

WWW.X.COM

PAYPAL

Open Global Payments Platform for• Consumers• Merchants/Sellers• Developers

“Pay Anyone and Receive from Anyone!”(email/phone)

04/11/2023 3

Page 4: Monetizing with PayPal on Mobile

WWW.X.COM

FOR CONSUMERS

• Mobile Web• SMS• Applications:

• iPhone• BlackBerry• Andriod

04/11/2023 4

Page 5: Monetizing with PayPal on Mobile

WWW.X.COM

MOBILE WEB

04/11/2023 5

Available on any mobile device athttp://m.paypal.com

• View Balance• Send & Claim money• Activate Phone• Profile related functionality

Page 6: Monetizing with PayPal on Mobile

WWW.X.COM

SMS

Send money, check balance, request money using SMS

- BAL- SEND- REQUEST- VOID

- Example: Send 10 to 4089675648

04/11/2023 6

Page 7: Monetizing with PayPal on Mobile

WWW.X.COM

APPLICATIONS

Native apps on Apple, Blackberry & Android

New iPhone App features

• Bump• SplitCheck• Request Money

04/11/2023 7

Page 8: Monetizing with PayPal on Mobile

WWW.X.COM

FOR MERCHANTS / SELLERS

• Mobile Checkout

04/11/2023 8

Similar to Express Checkout but with Mobile UISupports Phone/Pin login(User sets phone/pin with PayPal)

Two API calls:• SetMobileCheckout• DoMobileCheckout

Page 9: Monetizing with PayPal on Mobile

WWW.X.COM

FOR DEVELOPERS

• Online Billing Agreement• App Store Integration• Mobile Payment Library

04/11/2023 9

Page 10: Monetizing with PayPal on Mobile

MCOMMERCE SET TO EXPLODE

•Ecommerce migrating to mcommerce: brands moving from product brochure to storefronts

•New Mobile Use cases:• LBS• Comparison shopping• Private and time sensitive sales• Mobile Coupons• Personalized services• Ticketing

•eBay app shows the potential: $600m in 09 and $1.5B in 2010

Page 11: Monetizing with PayPal on Mobile

APPSTORE INTEGRATION - ONLINE BILLING AGREEMENTS

• Billing agreements can be set up online or on the phone.

• Agreements can then be used on the phone.

Page 12: Monetizing with PayPal on Mobile

WWW.X.COM

APP STORE INTEGRATION

RIM App World

- When a RIM User purchases App through AppWorld- RIM launches PayPal flow to accept payment- RIM pays its developers using MassPay

04/11/2023 12

Page 13: Monetizing with PayPal on Mobile

MOBILE PAYMENTS LIBRARY

Solving the pain points:• Credit card entry• Browser redirects• out of application context

Features:• Checkout, Donations, P2P transactions• Support iPad only, iPhone only and

Universal apps• Consumer stays in the app• Payment settled immediately to your PP

account• Quick integration into your app with no

need to code payment UI

Page 14: Monetizing with PayPal on Mobile

WWW.X.COM

USER EXPERIENCE

04/11/2023 14

Page 15: Monetizing with PayPal on Mobile

WWW.X.COM

MOBILE PAYMENTS LIBRARY

Four simple steps:1. Initialize with AppID2. Generate & Insert the “Pay with PayPal” button3. Set Payment details and start Checkout process4. Handle success/failure/cancellation callbacks

04/11/2023 15

Page 16: Monetizing with PayPal on Mobile

WWW.X.COM

INITIALIZING THE LIBRARY

+(PayPal*)initializeWithAppID:(NSString const *)inAppID;

+(PayPal*)initializeWithAppID:(NSString const *)inAppID forEnvironment:(PAYPAL_ENVIRONMENT)env;

typedef enum PayPalEnvironment {ENV_LIVE,ENV_SANDBOX,ENV_NONE,} PAYPAL_ENVIRONMENT;

Sample:PayPal *ppMEP = [PayPal initializeWithAppID:@"APP-

80W284485P519543T" forEnvironment:ENV_SANDBOX];

04/11/2023 16

Page 17: Monetizing with PayPal on Mobile

WWW.X.COM

PAY WITH PAYPAL BUTTON

-(UIButton *)getPayButton:(UIViewController const *)target buttonType:(PayPalButtonType)buttonType startCheckOut:(SEL)payWithPayPal PaymentType:(PayPalPaymentType)inPaymentType withLeft:(int)left withTop:(int)top;

typedef enum PayPalPaymentType {HARD_GOODS,SERVICE,PERSONAL,DONATION,}PayPalPaymentType;

Sample:UIButton *button = [[PayPal getInstance] getPayButton:self

buttonType:BUTTON_278x43 startCheckOut:@selector(payWithPayPal) PaymentType:HARD_GOODS withLeft:10 withTop:352];

[self.view addSubview:button];

04/11/2023 17

Page 18: Monetizing with PayPal on Mobile

WWW.X.COM

PAYMENT DETAILS AND CHECKOUT

-(void)EnableShipping;-(void)DisableShipping;-(void)SetSenderEmailorPhone:(NSString const *)sender;-(void)feePaidByReceiver;-(void)enableDynamicAmountUpdate;-(void)Checkout:(PayPalMEPPayment *)currentPayment;

@interface PayPalMEPPayment : NSObject {NSString *paymentCurrency;NSString *paymentAmount;NSString *itemDesc;NSString *recipient;NSString *taxAmount;NSString *shippingAmount;NSString *merchantName;}

04/11/2023 18

Page 19: Monetizing with PayPal on Mobile

WWW.X.COM

PAYMENT DETAILS AND CHECKOUT

Sample:[ppMEP EnableShipping];[ppMEP feePaidByReceiver];[ppMEP

SetSenderEmailorPhone:@"[email protected]"];PayPalMEPPayment *payment = [[PayPalMEPPayment alloc] init];payment.paymentCurrency=@"USD";payment.paymentAmount=[NSString stringWithString:@"5.0"];payment.itemDesc = [NSString stringWithFormat:@"Photo Print (%@)",

photoId];payment.recipient = @"[email protected]";payment.taxAmount = [NSString stringWithString:@"0.0"];payment.shippingAmount = [NSString stringWithString:@"0.41"] ;payment.merchantName = @"PicMart";[ppMEP Checkout:payment];[payment release];

04/11/2023 19

Page 20: Monetizing with PayPal on Mobile

WWW.X.COM

HANDLE CALLBACKS

-(void)paymentSuccess:(NSString const *)transactionID;-(void)paymentCanceled;-(void)paymentFailed:(PAYPAL_FAILURE)errorType;(Optional)-(MEPAmounts*)AdjustAmounts:

(MEPAddress const *)defaultAddress Currency:(NSString const *)inCurrency Amount:(NSString const *)inAmount Tax:(NSString const *)inTax Shipping:(NSString const *)inShipping;

typedef enum PayPalFailureType {SYSTEM_ERROR,RECIPIENT_ERROR,APPLICATION_ERROR,CONSUMER_ERROR,}PAYPAL_FAILURE;

04/11/2023 20

Page 21: Monetizing with PayPal on Mobile

WWW.X.COM

HANDLE CALLBACKS

Sample:

@interface OrderPage : UIViewController<PayPalMEPDelegate> { …. }

-(void)paymentSuccess:(NSString*)transactionID{UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Order successful" message:@"Your picture

is on it's way!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];[alert show];[alert release];}-(void)paymentCanceled{UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Order canceled" message:@"You canceled

your order. Touch \"Pay with PayPal\" to try again." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

[alert show];[alert release];}-(void)paymentFailed:(PAYPAL_FAILURE)errorType{UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Order failed" message:@"Your order failed.

Touch \"Pay with PayPal\" to try again." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

[alert show];[alert release];}

04/11/2023 21

Page 22: Monetizing with PayPal on Mobile

WWW.X.COM

DYNAMIC AMOUNT CALCULATION

Allows for recalculating the payment amount, tax, currency and shipping values when the user changes shipping address.

Sample:-(MEPAmounts *)AdjustAmounts:(MEPAddress const *)defaultAddress Currency:

(NSString const *)inCurrency Amount:(NSString const *)inAmount Tax:(NSString const *)inTax Shipping:(NSString const *)inShipping {//do any logic here that would adjust the amount based on the shipping addressMEPAmounts *newAmounts = [[[MEPAmounts alloc] init] autorelease];newAmounts.currency = @"USD";newAmounts.payment_amount = (NSString *)inAmount;//change tax based on the addressif ([defaultAddress.state isEqualToString:@"CA"]) {

newAmounts.tax = [NSString stringWithFormat:@"%.2f",[inAmount floatValue] * .1];}else {

newAmounts.tax = [NSString stringWithFormat:@"%.2f",[inAmount floatValue] * .08];}newAmounts.shipping = (NSString *)inShipping;return newAmounts;

}

04/11/2023 22

Page 23: Monetizing with PayPal on Mobile

WWW.X.COM

PAYPAL CONTEXT

Useful for restoring a payment transaction when the application is closed and restarted.

In AppDelegate Class:- (void)applicationWillTerminate:(UIApplication *)application{

PayPalContext *context = [[PayPal getInstance] payPalContext];NSDictionary *contextDict = [context serialize];[[NSUserDefaults standardUserDefaults] setObject:contextDict forKey:@"ResumePaymentContext"];

}In View Controller:NSDictionary *contextDict = nil;- (void)viewDidLoad {

self.title = @"Home"; [super viewDidLoad];contextDict = (NSDictionary*)[[NSUserDefaults standardUserDefaults] objectForKey:@"ResumePaymentContext"];if (contextDict){

resumeButton.hidden = FALSE;}

}

04/11/2023 23

Page 24: Monetizing with PayPal on Mobile

WWW.X.COM

PAYPAL CONTEXT

- (IBAction) resumePayment:(id)sender{if (contextDict){

PayPalContext *context = [PayPalContext alloc];[context deserialize:contextDict];PayPal *ppmep = [PayPal initializeWithAppID:@"APP-

80W284485P519543T" forEnvironment:ENV_SANDBOX];[ppmep setPayPalContext:context];[context release];

}}

04/11/2023 24

Page 25: Monetizing with PayPal on Mobile

WWW.X.COM

BUTTON_68x24

BUTTON_68x33

BUTTON_118x24

BUTTON_152x33

BUTTON_194x37

BUTTON_278x43

BUTTON_294x43

BUTTONS

04/11/2023 25

NOTE: If PayPalPaymentType is DONATE in “getPayButton”, all buttons will say “Donate”.

Page 26: Monetizing with PayPal on Mobile

WWW.X.COM

SUPPORTED LANG/LOCALES

• Argentina: es_AR• Brazil: pt_BR• Australia: en_AU• Belgium: en_BE, nl_BE, fr_BE• Canada: en_CA, fr_CA• France: fr_FR, en_FR• Germany: de_DE, en_DE• Hong Kong: zh_HK, en_HK• India: en_IN• Italy: it_IT• Japan: ja_JP, en_JP• Mexico: es_MX, en_MX• Netherlands: nl_NL, en_NL• Poland: pl_PL, en_PL• Singapore: en_SG• Spain: es_ES, en_ES• Switzerland: de_CH, en_CH, fr_CH• Taiwan: zh_TW, en_TW• United States: en_US (default)

-(void)setLang:(NSString *)language;

Sample:PayPal *ppMEP = [PayPal

initializeWithAppID:@"APP-80W284485P519543T" forEnvironment:ENV_SANDBOX];

[ppMEP setLang:@"en_US"];

04/11/2023 26

Page 27: Monetizing with PayPal on Mobile

DEVICE SUPPORT

• iPhone Only (3.0, 3.1.x)• iPad Only (3.2)• Universal (3.x)

GO TO HEADER/ FOOTER MENU TO SET TITLE 04/11/2023 27

Page 28: Monetizing with PayPal on Mobile

Let us know what you need!

(30% of our roadmap is based on your feedback)

www.x.com

Twitter: @paypalx, @ppalavilli

www.facebook.com/paypalx

Q & A

Page 29: Monetizing with PayPal on Mobile

WWW.X.COM 04/11/2023 29

DEMO

• iConcessionStand - Kenji Kato• Baublet – Michael Robinson