{"action":"created","issue":{"url":"https://api.github.com/repos/edx/ecommerce/issues/1048","repository_url":"https://api.github.com/repos/edx/ecommerce","labels_url":"https://api.github.com/repos/edx/ecommerce/issues/1048/labels{/name}","comments_url":"https://api.github.com/repos/edx/ecommerce/issues/1048/comments","events_url":"https://api.github.com/repos/edx/ecommerce/issues/1048/events","html_url":"https://github.com/edx/ecommerce/pull/1048","id":194697948,"number":1048,"title":"Client side checkout basket","user":{"login":"vkaracic","id":2808092,"avatar_url":"https://avatars.githubusercontent.com/u/2808092?v=3","gravatar_id":"","url":"https://api.github.com/users/vkaracic","html_url":"https://github.com/vkaracic","followers_url":"https://api.github.com/users/vkaracic/followers","following_url":"https://api.github.com/users/vkaracic/following{/other_user}","gists_url":"https://api.github.com/users/vkaracic/gists{/gist_id}","starred_url":"https://api.github.com/users/vkaracic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vkaracic/subscriptions","organizations_url":"https://api.github.com/users/vkaracic/orgs","repos_url":"https://api.github.com/users/vkaracic/repos","events_url":"https://api.github.com/users/vkaracic/events{/privacy}","received_events_url":"https://api.github.com/users/vkaracic/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-12-09T21:12:13Z","updated_at":"2016-12-15T02:45:43Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/edx/ecommerce/pulls/1048","html_url":"https://github.com/edx/ecommerce/pull/1048","diff_url":"https://github.com/edx/ecommerce/pull/1048.diff","patch_url":"https://github.com/edx/ecommerce/pull/1048.patch"},"body":"_Note: I'm opening this PR to keep more detailed notes about the changes in the PR text. This is still a work in progress._\r\n\r\nThis PR consists of:\r\n\r\n- Generalizing basket page: changes to the current basket so that it accepts different type of products and can accept multiple products. In the basket view each line is 'handled' based on the product class of that line's product. If no handler is specified it falls back to 'regular type' product handler. Screenshots: https://drive.google.com/drive/folders/0ByBQUYJ4LMyAb3lDTl96ZVpleXM?usp=sharing\r\n\r\n- Client side checkout basket: Redesign of the new client side checkout basket with keeping in mind backwards compatibility with old/current basket. Screenshot available here: https://drive.google.com/drive/folders/0ByBQUYJ4LMyANll2VmtNNDRHY28?usp=sharing\r\n\r\n- Credit card recognition and validation: credit cards are recognized automatically on user input (if the credit card information [regex pattern, CyberSource type ID, CVV number length] is available in the ``getCreditCardType`` function).\r\nThe credit card regex matches are created according to [these ranges](https://en.wikipedia.org/wiki/Payment_card_number#Issuer_identification_number_.28IIN.29). The credit card number is validated with [Luhn's algorithm](https://en.wikipedia.org/wiki/Luhn_algorithm). CVN inputted length is checked if it matches the inputted credit card type's CVN length. The expiry month and year validation fires if a non-number is sent or the selected combination of month and year is less than current month and year.\r\n\r\n- Factoring out payment processor specifics: namely the CyberSource specific field signing code in ``basket_app.js``. This way different payment processors can be plugged in.\r\n\r\n- Thawing the basket on getting a non-accept decision back from the payment processor in order for the user to edit the payment data and fix possible information entry errors instead of adding the product(s) to a new basket all over again.\r\n\r\n- [ ] Documentation update\r\n\r\nhttps://openedx.atlassian.net/browse/SOL-2113\r\n"},"comment":{"url":"https://api.github.com/repos/edx/ecommerce/issues/comments/267223703","html_url":"https://github.com/edx/ecommerce/pull/1048#issuecomment-267223703","issue_url":"https://api.github.com/repos/edx/ecommerce/issues/1048","id":267223703,"user":{"login":"mjfrey","id":2236013,"avatar_url":"https://avatars.githubusercontent.com/u/2236013?v=3","gravatar_id":"","url":"https://api.github.com/users/mjfrey","html_url":"https://github.com/mjfrey","followers_url":"https://api.github.com/users/mjfrey/followers","following_url":"https://api.github.com/users/mjfrey/following{/other_user}","gists_url":"https://api.github.com/users/mjfrey/gists{/gist_id}","starred_url":"https://api.github.com/users/mjfrey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mjfrey/subscriptions","organizations_url":"https://api.github.com/users/mjfrey/orgs","repos_url":"https://api.github.com/users/mjfrey/repos","events_url":"https://api.github.com/users/mjfrey/events{/privacy}","received_events_url":"https://api.github.com/users/mjfrey/received_events","type":"User","site_admin":false},"created_at":"2016-12-15T02:45:43Z","updated_at":"2016-12-15T02:45:43Z","body":"@clintonb please take a look. "}}
{"actor":{"display_login":"mjfrey"}}