IP Library Granted Patent US 11,216,812
Granted Patent B2
US 11,216,812 · App. 14/952,870 · Granted Jan 4, 2022

Secure in-line payments for rich internet applications

Inventors: Prashant Jamkhedkar (Sunnyvale, CA); Upendra Mardikar (San Jose, CA); Mark Wenger (San Francisco, CA); Mehul Asher (Sunnyvale, CA); Victor Chau (San Mateo, CA)
Assignee: PAYPAL, INC.
G06Q20/401G06F21/52G06Q20/206G06Q20/3223G06Q20/356G06Q20/3674G06Q20/382G06Q20/40G06Q30/00G06Q30/0641
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,216,812
App. No.
14/952,870
Granted
Jan 4, 2022
Kind
B2
Abstract

Methods and systems are provided for making secure financial transactions, such as purchase payments, using rich Internet applications (RIA) running an RIA runtime (also referred to as a platform or framework) on the user's smart phone or other mobile device. Embodiments differ from the usual way of re-directing a user from a third-party application and authenticating the user by providing secure in-line payments from a rich Internet application running on an RIA runtime. A system includes: a mobile device executing a rich Internet application running on an RIA runtime; a payment library communicating with the RIA runtime and a service provider, for which the payment library communicates with the service provider to authenticate the rich Internet application; and in response to authentication by the service provider, facilitates secure financial transactions via the rich Internet application.

Claims (77)

1. A system, comprising:

a non-transitory memory storing instructions; and

one or more hardware processors coupled to the non-transitory memory and configured to read the instructions to cause the system to perform operations comprising:

accessing a payment library installed on a client device;

initiating, based on the accessing of the payment library, an execution of a rich Internet application that runs on top of a runtime platform of the client device, wherein the rich Internet application is associated with providing an in-line payment using a service provider associated with the system;

receiving a connection request from the client device based on the execution of the rich Internet application;

receiving a request from the client device to verify an authenticity of the rich Internet application;

receiving, by an authentication and authorization service of the system, information from the payment library associated with the service provider from the runtime platform of the client device, wherein the information comprises a hash value from an oblivious hashing process of the rich Internet application;

verifying, by the authentication and authorization service, the hash value received from the client device

determining a user of the client device based on the received information;

transmitting, by the authentication and authorization service, an app authorization token to the payment library installed on the client device;

receiving, by a payment service of the system from the payment library based on transmitting the app authorization token by the authentication and authorization service, login credentials with the app authorization token via a user authentication screen of the rich Internet application;

verifying, by the payment service with the authentication and authorization service, the app authorization token for the payment library installed on the client device:

authenticating, by the payment service, the login credentials in the rich Internet application without requiring a redirection of the rich Internet application to a website of the service provider based on receiving the login credentials with the app authorization token and verifying the app authorization token:

transmitting, by the payment service, a user authorization token for an activity with the rich Internet application to the client device; and

transmitting, based on sending the user authorization token, a payment status for the activity on the client device.

2. The system of claim 1 , wherein the operations further comprise:

receiving a code signature associated with a code segment for the rich Internet application; and

determining that the rich Internet application is authentic to the service provider using the code signature.

3. The system of claim 1 , wherein the information received from the runtime platform indicates a domain name of a server associated with the service provider.

4. The system of claim 1 , wherein the operations further comprise:

determining the information received by the payment library from the runtime platform indicates that the rich Internet application is authorized for user activities with the client device.

5. The system of claim 4 , wherein the information indicates the rich Internet application is authorized to communicate with the payment library to complete in-line payments of the user activities with the service provider.

6. A method, comprising:

accessing, by one or more processors of a service provider device, a payment library installed on a client device;

initiating, by the one or more processors of the service provider device based on the accessing of the payment library, an execution of a rich Internet application that runs on top of a runtime platform of the client device, wherein the rich Internet application is associated with providing an in-line payment using the service provider device;

receiving, by the one or more processors of the service provider device, a connection request from the client device based on the execution of the rich Internet application;

receiving, by the one or more processors, a request from the client device to verify an authenticity of the rich Internet application;

receiving, from the payment library of the client device by an authentication and authorization service of the service provider device using the one or more processors, information from the payment library associated the service provider device from the runtime platform on the client device, wherein the information comprises a hash value from an oblivious hashing process of the rich Internet application;

verifying, by the authentication and authorization service using the one or more processors, the hash value received from the client device indicates an authentic behavior of the rich Internet application retrieved by the payment library;

determining, by the one or more processors, a user of the client device based on the received information;

transmitting, by the authentication and authorization service using the one or more processors, an app authorization token to the payment library on the client device;

receiving, from the payment library by a payment service of the service provider device using the one or more processors based on sending the app authorization token, login credentials with the app authorization token via a user authentication screen of the rich Internet application;

verifying, by the payment service with the authentication and authorization service, the app authorization token for the payment library installed on the client device;

authenticating, by the payment service using the one or more processors, the login credentials without requiring redirection of the rich Internet application to a website of the service provider device based on receiving the login credentials with the app authorization token and verifying the app authorization token;

transmitting, by the payment service using the one or more processors, a user authorization token for an activity with the rich Internet application to the client device; and

transmitting, by the one or more processors based on sending the user authorization token, a payment status for the activity on the client device.

7. The method of claim 6 , further comprising:

receiving code signatures embedded in a code segment for the rich Internet application; and

determining that the rich Internet application is authentic to the service provider device using the code signatures.

8. The method of claim 6 , further comprising:

determining, by the one or more processors, the information received from the runtime platform indicates a domain name of a server associated with the service provider device.

9. The method of claim 6 , further comprising:

determining an amount of the information received by the payment library from the runtime platform; and

determining the rich Internet application is authorized for user activities with the client device based at least on the amount of the information received.

10. The method of claim 9 , wherein the information indicates the rich Internet application is authorized to communicate with the payment library to complete in-line payments associated of the user activities with the service provider device.

11. A non-transitory machine-readable medium having stored thereon machine-readable instructions executable to cause a machine to perform operations, comprising:

accessing a payment library installed on a client device;

initiating, based on the accessing of the payment library, an execution of a rich Internet application that runs on top of a runtime platform of the client device, wherein the rich Internet application is associated with providing an in-line payment using a service provider;

receiving a connection request from the client device based on the execution of the rich Internet application;

receiving a request from the client device to verify an authenticity of the rich Internet application;

receiving by an authentication and authorization service of the service provider, information from the payment library associated with the service provider from the runtime platform on the client device, wherein the information comprises a hash value from an oblivious hashing process of the rich Internet application;

verifying, by the authentication and authorization service, the hash value received from the client device indicates an authentic behavior of the rich Internet application retrieved by the payment library;

determining a user of the client device based on the received information;

transmitting, by the authentication and authorization service, an app authorization token to the payment library on the client device;

receiving, by a payment service of the service provider from the payment library based on sending the app authorization token, login credentials with the app authorization token via a user authentication screen of the rich Internet application;

verifying, by the payment service with the authentication and authorization service, the app authorization token for the payment library installed on the client device;

authenticating, by the payment service, the login credentials without requiring redirection of the rich Internet application to a website of the service provider based on receiving the login credentials with the app authorization token and verifying the app authorization token;

transmitting, by the payment service, a user authorization token for an activity with the rich Internet application to the client device; and

transmitting, based on sending the user authorization token, a payment status for the activity on the client device.

12. The non-transitory machine-readable medium of claim 11 , wherein the operations further comprise:

receiving code signatures embedded in a code segment for the rich Internet application; and

determining that the rich Internet application is authentic to the service provider based on the code signatures.

13. The non-transitory machine-readable medium of claim 11 , wherein the machine comprises a server of the service provider, and wherein the operations further comprise:

determining the information retrieved from the runtime platform indicates a domain name of the server.

14. The non-transitory machine-readable medium of claim 11 , wherein the operations further comprise:

determining an amount of the information received by the payment library from the runtime platform; and

determining the rich Internet application is authorized for user activities with the client device based at least on the amount of the information received.

15. The non-transitory machine-readable medium of claim 14 , wherein the information indicates the rich Internet application is authorized to communicate with the payment library to complete in-line payments associated with the user activities with the service provider.

16. The system of claim 1 , wherein the hash value comprises an oblivious hash value of an execution stack of the runtime platform.

17. The method of claim 6 , wherein the hash value comprises an oblivious hash value of an execution stack of the runtime platform.

18. The system of claim 1 , wherein the operations further comprise:

transmitting a notification based on the verifying via an out-of-band communication mechanism using a text message or an email.

19. The method of claim 6 , further comprising:

transmitting a notification based on the verifying via an out-of-band communication mechanism using a text message or an email.

20. The non-transitory machine-readable medium of claim 11 , wherein the operations further comprise:

transmitting a notification based on the verifying via an out-of-band communication mechanism using a text message or an email.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2015
From: JAMKHEDKAR, PRASHANT; MARDIKAR, UPENDRA; WENGER, MARK; ASHER, MEHUL; CHAU, VICTOR
To: EBAY INC.
Reel/Frame 037265/0301 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2015
From: EBAY INC.
To: PAYPAL, INC.
Reel/Frame 037265/0444 →