w3c / webpayments

The document repo for the Web Payments Working Group
https://github.com/w3c/webpayments/wiki
Other
256 stars 62 forks source link

[Tokenized Card Payment] TokenCardRequest should inherit from BasicCardRequest #212

Closed nickjshearer closed 7 years ago

nickjshearer commented 7 years ago

Ian requested some feedback on this proposal, which I am happy to provide. Note that my feedback should not be taken as an endorsement of the proposal itself.

The payment response of a tokenized card inherits from the basic card spec:

dictionary TokenizedCardResponse : BasicCardResponse {
    required DOMString cardLast4;
             DOMString tokenType;
             DOMString tokenRequesterId;
};

...but the request does not:

enum TokenCardType {
    "emv",
    "issuer"
};

dictionary TokenCardRequest {
    sequence<DOMString>     supportedNetworks;
    sequence<TokenCardType> supportedTypes;
};

Additionally, it seems to me that basic card payment supports limiting the type of card whereas tokenized card does not:

enum BasicCardType {
    "credit",
    "debit",
    "prepaid"
};

dictionary BasicCardRequest {
    sequence<DOMString>     supportedNetworks;
    sequence<BasicCardType> supportedTypes;
};

Since it is a fairly common use case to limit payment to debit cards (versus credit) I wonder why tokenized card doesn't support this. If TokenCardRequest inherited from BasicCardRequest and renamed itssupportedTypes property to supportedTokenizationMethods this could be very easily accomplished.

webpayments commented 7 years ago

Hi, I joined yesterday and have masses to review and catch-up! I clearly need to read and understand the scope. But in the BasicCardType I miss a few, or perhaps you consider them variants of the three mentioned. E.g. FueL Card (identification card), or even no card at all (when payment is made via an iso20022 direct credit- this might just be called account). We also see web payments from accumulated loyalty "points/cash".

I will start reading……..

Also just another point…. The standards body I am working with (called IFSF) has started to “reduce” the “cards-centric view of payment. When customers “pay” for fuel - which can be hydrogen or electricity (or car valet or lubes service, etc.,) as well as the traditional oil based fuels, from their vehicle using a smart phone or tablet — a “card” doesn’t come into the interface between Phone App, Payment Service Provider and Retail Service station at all. Yet this is a form of "web payment". Ultimately the "payment “ is made through some sort of financial account…. Could even be an account full of loyalty points or anything with financial value. Remember in fuel stations - often a substantial (12-15%) part of the business is with “local site accounts”. No card required just customer name.

My apologies if this is off at a tangent. I just didn’t think the 3 attributes below were sufficient.

enum BasicCardType { "credit", "debit", "prepaid"

Looking forward to working with you all….

Regards,

John Carrier

IFSF Projects Manager Peershaws, Berewyk Hall Court White Colne, COLCHESTER Essex, CO6 2QB Mobile: +44 7526 718910 Skype: john.carrier Twitter: @IFSF_PM

On 14 Feb 2017, at 02:08, Nick Shearer notifications@github.com wrote:

Ian requested some feedback on this proposal, which I am happy to provide. Note that my feedback should not be taken as an endorsement of the proposal itself.

The payment response of a tokenized card inherits from the basic card spec:

dictionary TokenizedCardResponse : BasicCardResponse { required DOMString cardLast4; DOMString tokenType; DOMString tokenRequesterId; }; ...but the request does not:

enum TokenCardType { "emv", "issuer" };

dictionary TokenCardRequest { sequence supportedNetworks; sequence supportedTypes; }; Additionally, it seems to me that basic card payment supports limiting the type of card whereas tokenized card does not:

enum BasicCardType { "credit", "debit", "prepaid" };

dictionary BasicCardRequest { sequence supportedNetworks; sequence supportedTypes; }; Since it is a fairly common use case to limit payment to debit cards (versus credit) I wonder why tokenized card doesn't support this. If TokenCardRequest inherited from BasicCardRequest and renamed itssupportedTypes property to supportedTokenizationMethods this could be very easily accomplished.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/w3c/webpayments/issues/212, or mute the thread https://github.com/notifications/unsubscribe-auth/APFrHCo_OOIWAoXCHsyo-r5EC5CEHQ2zks5rcQyFgaJpZM4L_9-i.

kphfb commented 7 years ago

Fair point, I’ll update it

From: Nick Shearer notifications@github.com Reply-To: w3c/webpayments reply@reply.github.com Date: Monday, February 13, 2017 at 6:08 PM To: w3c/webpayments webpayments@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [w3c/webpayments] [Tokenized Card Payment] TokenCardRequest should inherit from BasicCardRequest (#212)

Ian requested some feedback on this proposal, which I am happy to provide. Note that my feedback should not be taken as an endorsement of the proposal itself.

The payment response of a tokenized card inherits from the basic card spec:

dictionary TokenizedCardResponse : BasicCardResponse {

required DOMString cardLast4;

         DOMString tokenType;

         DOMString tokenRequesterId;

};

...but the request does not:

enum TokenCardType {

"emv",

"issuer"

};

dictionary TokenCardRequest {

sequence<DOMString>     supportedNetworks;

sequence<TokenCardType> supportedTypes;

};

Additionally, it seems to me that basic card payment supports limiting the type of card whereas tokenized card does not:

enum BasicCardType {

"credit",

"debit",

"prepaid"

};

dictionary BasicCardRequest {

sequence<DOMString>     supportedNetworks;

sequence<BasicCardType> supportedTypes;

};

Since it is a fairly common use case to limit payment to debit cards (versus credit) I wonder why tokenized card doesn't support this. If TokenCardRequest inherited from BasicCardRequest and renamed itssupportedTypes property to supportedTokenizationMethods this could be very easily accomplished.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/w3c/webpayments/issues/212, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AF_3OK7pUxrCfgoPxHyo4pI3gZ9jFhswks5rcQyEgaJpZM4L_9-i.

ianbjacobs commented 7 years ago

Roy did this: https://github.com/w3c/webpayments/commit/1b92ed5b20b2eadc553579e5bc44c9b4a1f4e457