IP Library › Granted Patent US 11,315,104
Granted Patent B2
US 11,315,104 · App. 16/533,949 · Granted Apr 26, 2022

Account identifier digitization abstraction

Inventors: Yuanji Wang (Kirkland, WA); Ashok Srinivasan (Woodinville, WA); Xuqing Zhang (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
G06Q20/341G06Q20/208
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,315,104
App. No.
16/533,949
Granted
Apr 26, 2022
Kind
B2
Abstract

Described herein are various technologies pertaining to integrating account identifier (e.g., card provider(s)) into a digitization system, for example, without requiring changes to a client application on a user device (e.g., smart phone). An extensible account identifier abstraction system is provided that stores data according to a unified data model and is accessible to the user device via unified interface(s). The extensible abstraction system includes one or more plugin modules/provider relay plugin(s) that convert call(s) to the unified interface(s) and data stored according to the unified data model into provider-specific call(s) with data formatted according to a provider-specific schema.

Claims (124)

1. A system, comprising:

a computer comprising a processor and a memory having computer-executable instructions stored thereupon which, when executed by the processor, cause the computer to:

receive a request from a device using a unified interface, the request comprising data based on a unified data contract;

identify a provider associated with the request;

provide the request to a plugin module associated with the identified provider;

identify stored data associated with the request;

by the plugin module, convert the stored data into data formatted according to a provider-specific schema;

provide the converted stored data to the identified provider;

by the plugin module, convert the request based on a provider-specific contract; and

provide the converted request to the identified provider.

2. The system of claim 1 , the memory having further computer-executable instructions stored thereupon which, when executed by the processor, cause the computer to:

receive a response to the converted request from the identified provider; and

provide the response to the device.

3. The system of claim 1 , the memory having further computer-executable instructions stored thereupon which, when executed by the processor, cause the computer to:

authenticate the device using a token that uniquely identifies the device that sent the request.

4. The system of claim 3 , wherein the token is issued on a per device basis.

5. The system of claim 4 , wherein the token is issued based upon a hardware identifier received from the device and information obtained from a user of the device.

6. The system of claim 1 , wherein the request is for a transaction-related operation comprising at least one of provisioning a card profile and provisioning transaction credentials.

7. The system of claim 1 , wherein the stored data comprises at least one of card metadata, owner device information, an EMV card profile, or transaction credentials.

8. The system of claim 1 , wherein the unified data contract comprises card metadata for a card, the card metadata identifying at least one of an expiry data of the card, a card image of the card, or a card term of the card.

9. The system of claim 1 , wherein the unified data contract comprises owner device information identifying at least one of a device name of the device, a device type of the device, or a device operating system version of the device.

10. The system of claim 1 , wherein the unified data contract comprises an EMV card profile reflecting an EMV data tag required by the device for emulating a chip-card.

11. The system of claim 1 , wherein the unified data contract comprises a limited use credential issued by the identified provider for generating a cryptogram during transaction time.

12. The system of claim 1 , wherein the request is received from the device via near field communication.

13. The system of claim 1 , the memory having further computer-executable instructions stored thereupon which, when executed by the processor, cause the computer to:

enroll the device using a multi-factor process.

14. A method, comprising:

receiving a request from a device using a unified interface, the request comprising data based on a unified data contract;

identifying a provider associated with the request;

providing the request to a plugin module associated with the identified provider;

identifying stored data associated with the request;

by the plugin module, converting the stored data into data formatted according to a provider-specific schema;

providing the converted stored data to the identified provider;

by the plugin module, converting the request based on a provider-specific contract; and

providing the converted request to the identified provider.

15. The method of claim 14 , further comprising:

receiving a response to the converted request from the identified provider; and

providing the response to the device.

16. The method of claim 14 , further comprising:

authenticating the device using a token that uniquely identifies the device that sent the request.

17. The method of claim 16 , wherein the token is issued on a per device basis based upon a hardware identifier received from the device and information obtained from a user of the device.

18. The method of claim 14 , wherein the stored data comprises at least one of card metadata, owner device information, an EMV card profile, or transaction credentials.

19. A computer storage media storing computer-readable instructions that, when executed, cause a computing device to:

receive a request from a device using a unified interface, the request comprising data based on a unified data contract;

authenticate the device using a token that uniquely identifies the device that sent the request;

identify a provider associated with the request;

provide the request to a plugin module associated with the identified provider;

identify stored data associated with the request;

by the plugin module, convert the stored data into data formatted according to a provider-specific schema;

provide the converted stored data to the identified provider;

by the plugin module, convert the request based on a provider-specific contract;

provide the converted request to the identified provider;

receive a response to the converted request from the identified provider; and

provide the response to the device.

20. The computer storage media of claim 19 , wherein the stored data comprises at least one of card metadata, owner device information, an EMV card profile, or transaction credentials.

21. The system of claim 1 , the memory having further computer-executable instructions stored thereupon which, when executed by the processor, cause the computer to:

provide a plurality of provider-specific plugin modules configured to perform data formatting based on the unified data contract into respective provider-specific schemas for a plurality of different providers; and

select the plugin module from the plurality of provider-specific plugin modules based at least on the identified provider that is associated with the request.

22. The system of claim 21 , the memory having further computer-executable instructions stored thereupon which, when executed by the processor, cause the computer to:

receive another request from the device using the unified interface, the another request comprising other data based on the unified data contract;

identify another provider associated with the another request;

select another plugin module from the plurality of provider-specific plugin modules based at least on the another provider that is associated with the another request;

provide the another request to the another plugin module associated with the another provider;

identify other stored data associated with the another request;

by the another plugin module, convert the other stored data into other stored data formatted according to another provider-specific schema;

provide the converted other stored data to the another provider;

by the another plugin module, convert the another request based on another provider-specific contract; and

provide the converted another request to the another provider.

23. The system of claim 22 , the memory having further computer-executable instructions stored thereupon which, when executed by the processor, cause the computer to:

listen to inbound traffic having calls from the plurality of different providers;

dispatch individual calls to corresponding provider-specific plugin modules; and

process the individual calls with the corresponding provider-specific plugin modules, the corresponding provider-specific plugin modules handling the individual calls using provider-specific logic and providing corresponding responses to the device.

24. The system of claim 23 , the memory having further computer-executable instructions stored thereupon which, when executed by the processor, cause the computer to:

provide a plurality of provider-specific relay plugins configured to perform provider-specific encryption or decryption processing;

select a provider-specific relay plugin from the plurality of provider-specific relay plugins based at least on the identified provider that is associated with the request;

using the provider-specific relay plugin for the identified provider, perform secure encryption or decryption of secure data associated with the request according to the provider-specific contract;

select another provider-specific relay plugin from the plurality of provider-specific relay plugins based at least on the another provider that is associated with the another request; and

using the another provider-specific relay plugin for the another provider, perform secure encryption or decryption of other secure data associated with the another request according to the another provider-specific contract.

25. The method of claim 14 , further comprising:

providing a plurality of provider-specific plugin modules configured to perform data formatting based on the unified data contract into respective provider-specific schemas for a plurality of different providers; and

selecting the plugin module from the plurality of provider-specific plugin modules based at least on the identified provider that is associated with the request.

26. The method of claim 25 , further comprising:

receiving another request from the device using the unified interface, the another request comprising other data based on the unified data contract;

identifying another provider associated with the another request;

selecting another plugin module from the plurality of provider-specific plugin modules based at least on the another provider that is associated with the another request;

providing the another request to the another plugin module associated with the another provider;

identifying other stored data associated with the another request;

by the another plugin module, converting the other stored data into other stored data formatted according to another provider-specific schema;

providing the converted other stored data to the another provider;

by the another plugin module, converting the another request based on another provider-specific contract; and

providing the converted another request to the another provider.

27. The method of claim 26 , further comprising:

listening to inbound traffic having calls from the plurality of different providers;

dispatching individual calls to corresponding provider-specific plugin modules; and

processing the individual calls with the corresponding provider-specific plugin modules, the corresponding provider-specific plugin modules handling the individual calls using provider-specific logic and providing corresponding responses to the device.

28. The method of claim 27 , further comprising:

providing a plurality of provider-specific relay plugins configured to perform provider-specific encryption or decryption processing;

selecting a provider-specific relay plugin from the plurality of provider-specific relay plugins based at least on the identified provider that is associated with the request;

using the provider-specific relay plugin for the provider, performing secure encryption or decryption of secure data associated with the request according to the provider-specific contract;

selecting another provider-specific relay plugin from the plurality of provider-specific relay plugins based at least on the another provider that is associated with the another request; and

using the another provider-specific relay plugin for the another provider, performing secure encryption or decryption of other secure data associated with the another request according to the another provider-specific contract.

29. The computer storage media of claim 19 , storing further computer-readable instructions that, when executed, cause the computing device to:

provide a plurality of provider-specific plugin modules configured to perform data formatting based on the unified data contract into respective provider-specific schemas for a plurality of different providers; and

select the plugin module from the plurality of provider-specific plugin modules based at least on the identified provider that is associated with the request.

30. The computer storage media of claim 29 , storing further computer-readable instructions that, when executed, cause the computing device to:

receive another request from the device using the unified interface, the another request comprising other data based on the unified data contract;

identify another provider associated with the another request;

select another plugin module from the plurality of provider-specific plugin modules based at least on the another provider that is associated with the another request;

provide the another request to the another plugin module associated with the another provider;

identify other stored data associated with the another request;

by the another plugin module, convert the other stored data into other stored data formatted according to another provider-specific schema;

provide the converted other stored data to the another provider;

by the another plugin module, convert the another request based on another provider-specific contract; and

provide the converted another request to the another provider.

31. The computer storage media of claim 30 , storing further computer-readable instructions that, when executed, cause the computing device to:

listen to inbound traffic having calls from the plurality of different providers;

dispatch individual calls to corresponding provider-specific plugin modules; and

process the individual calls with the corresponding provider-specific plugin modules, the corresponding provider-specific plugin modules handling the individual calls using provider-specific logic and providing corresponding responses to the device.

32. The computer storage media of claim 31 , storing further computer-readable instructions that, when executed, cause the computing device to:

provide a plurality of provider-specific relay plugins configured to perform provider-specific encryption or decryption processing;

select a provider-specific relay plugin from the plurality of provider-specific relay plugins based at least on the identified provider that is associated with the request;

using the provider-specific relay plugin for the identified provider, perform secure encryption or decryption of secure data associated with the request according to the provider-specific contract;

select another provider-specific relay plugin from the plurality of provider-specific relay plugins based at least on the another provider that is associated with the another request; and

using the another provider-specific relay plugin for the another provider, perform secure encryption or decryption of other secure data associated with the another request according to the another provider-specific contract.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2019
From: WANG, YUANJI; SRINIVASAN, ASHOK; ZHANG, XUQING
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 049985/0647 →
Continuity (2)
Continuation 15256063 · Sep 2, 2016
Related Publication 20190362338A1 · Nov 28, 2019
Cited By (1)
US 12,340,390