Dear All,
I have enabled the ecommerce and discovery using the documentation here
I have also setup ecommerce using the steps prescribed at:
To be specific I have configured ecommerce using the below commands:
tutor config save --set ECOMMERCE_HOST=ecommerce.localhost
tutor config save --set 'ECOMMERCE_ENABLED_PAYMENT_PROCESSORS=["cybersource", "paypal"]'
tutor config save --set 'ECOMMERCE_ENABLED_CLIENT_SIDE_PAYMENT_PROCESSORS=["paypal"]'
tutor config save --set "ECOMMERCE_PAYMENT_PROCESSORS=$(cat ecommerce-config.yml)"
My paypal configuration is:
paypal:
cancel_checkout_path: /checkout/cancel-checkout/
client_id: CLIENTID
client_secret: CLIENTSECRET
error_url: /checkout/error/
mode: sandbox
receipt_url: /checkout/receipt/
Below is how my env file looks like:
ACTIVATE_HTTPS: false
ACTIVATE_SMTP: true
ANDROID_OAUTH2_SECRET: lKMMMN5g9sEYhlLa4kfZ39qj
CMS_HOST: studio.localhost
CONTACT_EMAIL: contact@myedx.com
DISCOVERY_MYSQL_PASSWORD: DoLt26E4
DISCOVERY_OAUTH2_SECRET: ik9f7eEM
DISCOVERY_SECRET_KEY: PpAN8mjj1V06JJtlcbfH
ECOMMERCE_API_KEY: YX5MPFvT9rzM9LOgu1Ae
ECOMMERCE_ENABLED_CLIENT_SIDE_PAYMENT_PROCESSORS:
- paypal
ECOMMERCE_ENABLED_PAYMENT_PROCESSORS:
- cybersource
- paypal
ECOMMERCE_EXTRA_PAYMENT_PROCESSOR_CLASSES: []
ECOMMERCE_HOST: ecommerce.localhost
ECOMMERCE_MYSQL_PASSWORD: U0LFSS8qOy
ECOMMERCE_OAUTH2_SECRET: W4CFYSS6Bi
ECOMMERCE_PAYMENT_PROCESSORS:
paypal:
cancel_checkout_path: /checkout/cancel-checkout/
client_id: CLIENTID
client_secret: CLIENTSECRET
error_url: /checkout/error/
mode: sandbox
receipt_url: /checkout/receipt/
ECOMMERCE_SECRET_KEY: 53tNaapgzbqwwj6wpIqJU2
ID: xJlbTlvvzbaTiZss3bKLhhZNOY
LANGUAGE_CODE: en
LMS_HOST: localhost
MYSQL_ROOT_PASSWORD: NDDS2BpSBD
NOTIFICATION_EMAIL_EDX_LOGO: static/images/mail-header-logo.png
OPENEDX_MYSQL_PASSWORD: PkSSnTkIYs
OPENEDX_SECRET_KEY: rp3wSS4gO1DDarT4GvsOKr9JR4
PLATFORM_NAME: MyEdX
PLUGINS:
- discovery
- ecommerce
- figures
I am unable to go to the checkout page. I get a 500 Error. I did also go through a similar issue listed on this forum but that was a different error.
I am getting a NewConnectionError. It seems the API call to /api/v2/payment/processors/ is timing out even though the discovery service is up. Can someone let me know what I am missing. Thanks
Below is the error Log:
Attaching to tutor_local_ecommerce-worker_1, tutor_local_ecommerce_1, tutor_local_lms-worker_1, tutor_local_lms-worker-beat_1, tutor_local_discovery_1, tutor_local_nginx_1, tutor_local_lms_1, tutor_local_cms-worker_1, tutor_local_cms_1, tutor_local_forum_1, tutor_local_mysql_1, tutor_local_mongodb_1, tutor_local_openedx-assets_1, tutor_local_ecommerce-assets_1, tutor_local_discovery-assets_1, tutor_local_elasticsearch_1, tutor_local_smtp_1, tutor_local_memcached_1, tutor_local_rabbitmq_1
tutor_local_discovery-assets_1 exited with code 0
tutor_local_ecommerce-assets_1 exited with code 0
tutor_local_openedx-assets_1 exited with code 0
lms_1 | 2020-06-03 11:12:22,096 INFO 11 [tracking] logger.py:50 - {"username": "", "event_type": "/change_enrollment", "ip": "172.20.0.1", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "host": "localhost", "referer": "http://localhost/courses/course-v1:Raifox+CS1010112+2020_T2/about", "accept_language": "en-GB,en-US;q=0.9,en;q=0.8", "event": "{\"POST\": {\"course_id\": [\"course-v1:Raifox+CS1010112+2020_T2\"], \"enrollment_action\": [\"enroll\"]}, \"GET\": {}}", "event_source": "server", "context": {"user_id": null, "org_id": "", "course_id": "", "path": "/change_enrollment"}, "time": "2020-06-03T11:12:22.096594+00:00", "page": null}
nginx_1 | 172.20.0.1 - - [03/Jun/2020:11:12:22 +0000] http://localhost "POST /change_enrollment HTTP/1.1" 403 0 "http://localhost/courses/course-v1:Raifox+CS1010112+2020_T2/about" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-"
lms_1 | 172.20.0.1 - - [03/Jun/2020:11:12:22 +0000] "POST /change_enrollment HTTP/1.0" 403 - "http://localhost/courses/course-v1:Raifox+CS1010112+2020_T2/about" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"
lms_1 | 2020-06-03 11:12:22,126 INFO 10 [tracking] logger.py:50 - {"username": "", "event_type": "/register", "ip": "172.20.0.1", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "host": "localhost", "referer": "http://localhost/courses/course-v1:Raifox+CS1010112+2020_T2/about", "accept_language": "en-GB,en-US;q=0.9,en;q=0.8", "event": "{\"POST\": {}, \"GET\": {\"course_id\": [\"course-v1:Raifox CS1010112 2020_T2\"], \"enrollment_action\": [\"enroll\"]}}", "event_source": "server", "context": {"user_id": null, "org_id": "", "course_id": "", "path": "/register"}, "time": "2020-06-03T11:12:22.126610+00:00", "page": null}
lms_1 | 2020-06-03 11:12:22,141 ERROR 10 [openedx.core.djangoapps.user_authn.views.login_form] login_form.py:92 - Unknown tpa_hint provider: 'tpa_hint'
lms_1 | Traceback (most recent call last):
lms_1 | File "/openedx/edx-platform/openedx/core/djangoapps/user_authn/views/login_form.py", line 76, in login_and_registration_form
lms_1 | provider_id = next_args['tpa_hint'][0]
lms_1 | KeyError: 'tpa_hint'
nginx_1 | 172.20.0.1 - - [03/Jun/2020:11:12:22 +0000] http://localhost "GET /register?course_id=course-v1:Raifox+CS1010112+2020_T2&enrollment_action=enroll HTTP/1.1" 200 41071 "http://localhost/courses/course-v1:Raifox+CS1010112+2020_T2/about" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-"
lms_1 | 172.20.0.1 - - [03/Jun/2020:11:12:22 +0000] "GET /register?course_id=course-v1:Raifox+CS1010112+2020_T2&enrollment_action=enroll HTTP/1.0" 200 41071 "http://localhost/courses/course-v1:Raifox+CS1010112+2020_T2/about" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"
lms_1 | 2020-06-03 11:12:47,407 INFO 10 [tracking] logger.py:50 - {"username": "", "event_type": "/user_api/v1/account/login_session/", "ip": "172.20.0.1", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "host": "localhost", "referer": "http://localhost/login?course_id=course-v1:Raifox+CS1010112+2020_T2&enrollment_action=enroll", "accept_language": "en-GB,en-US;q=0.9,en;q=0.8", "event": "{\"POST\": {\"analytics\": [\"{\\\"enroll_course_id\\\":\\\"course-v1:Raifox+CS1010112+2020_T2\\\"}\"], \"password\": \"********\", \"email\": [\"shashi.kiran@raifox.com\"], \"remember\": [\"false\"]}, \"GET\": {}}", "event_source": "server", "context": {"user_id": null, "org_id": "", "course_id": "", "path": "/user_api/v1/account/login_session/"}, "time": "2020-06-03T11:12:47.407162+00:00", "page": null}
lms_1 | 2020-06-03 11:12:47,496 INFO 10 [audit] models.py:2245 - Login success - user.id: 5
nginx_1 | 172.20.0.1 - - [03/Jun/2020:11:12:47 +0000] http://localhost "POST /user_api/v1/account/login_session/ HTTP/1.1" 200 0 "http://localhost/login?course_id=course-v1:Raifox+CS1010112+2020_T2&enrollment_action=enroll" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-"
lms_1 | 172.20.0.1 - - [03/Jun/2020:11:12:47 +0000] "POST /user_api/v1/account/login_session/ HTTP/1.0" 200 - "http://localhost/login?course_id=course-v1:Raifox+CS1010112+2020_T2&enrollment_action=enroll" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"
lms_1 | 2020-06-03 11:12:47,849 INFO 10 [tracking] logger.py:50 - {"username": "shashi.kiran", "event_type": "/account/finish_auth", "ip": "172.20.0.1", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "host": "localhost", "referer": "http://localhost/login?course_id=course-v1:Raifox+CS1010112+2020_T2&enrollment_action=enroll", "accept_language": "en-GB,en-US;q=0.9,en;q=0.8", "event": "{\"POST\": {}, \"GET\": {\"course_id\": [\"course-v1:Raifox CS1010112 2020_T2\"], \"enrollment_action\": [\"enroll\"], \"next\": [\"/dashboard\"]}}", "event_source": "server", "context": {"user_id": 5, "org_id": "", "course_id": "", "path": "/account/finish_auth"}, "time": "2020-06-03T11:12:47.849150+00:00", "page": null}
lms_1 | 172.20.0.1 - - [03/Jun/2020:11:12:47 +0000] "GET /account/finish_auth?course_id=course-v1%3ARaifox+CS1010112+2020_T2&enrollment_action=enroll&next=%2Fdashboard HTTP/1.0" 200 8136 "http://localhost/login?course_id=course-v1:Raifox+CS1010112+2020_T2&enrollment_action=enroll" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"
nginx_1 | 172.20.0.1 - - [03/Jun/2020:11:12:47 +0000] http://localhost "GET /account/finish_auth?course_id=course-v1%3ARaifox+CS1010112+2020_T2&enrollment_action=enroll&next=%2Fdashboard HTTP/1.1" 200 8136 "http://localhost/login?course_id=course-v1:Raifox+CS1010112+2020_T2&enrollment_action=enroll" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-"
nginx_1 | 172.20.0.1 - - [03/Jun/2020:11:12:48 +0000] http://localhost "GET /static/js/student_account/views/finish_auth_factory.f7c5a7b3c8b5.js?raw HTTP/1.1" 200 4257 "http://localhost/account/finish_auth?course_id=course-v1%3ARaifox+CS1010112+2020_T2&enrollment_action=enroll&next=%2Fdashboard" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-"
nginx_1 | 172.20.0.1 - - [03/Jun/2020:11:12:48 +0000] http://localhost "GET /static/js/vendor/jquery.cookie.js HTTP/1.1" 200 1941 "http://localhost/account/finish_auth?course_id=course-v1%3ARaifox+CS1010112+2020_T2&enrollment_action=enroll&next=%2Fdashboard" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-"
lms_1 | 2020-06-03 11:12:48,409 INFO 10 [tracking] logger.py:50 - {"username": "shashi.kiran", "event_type": "/api/commerce/v0/baskets/", "ip": "172.20.0.1", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "host": "localhost", "referer": "http://localhost/account/finish_auth?course_id=course-v1%3ARaifox+CS1010112+2020_T2&enrollment_action=enroll&next=%2Fdashboard", "accept_language": "en-GB,en-US;q=0.9,en;q=0.8", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 5, "org_id": "", "course_id": "", "path": "/api/commerce/v0/baskets/"}, "time": "2020-06-03T11:12:48.408880+00:00", "page": null}
nginx_1 | 172.20.0.1 - - [03/Jun/2020:11:12:48 +0000] http://localhost "POST /api/commerce/v0/baskets/ HTTP/1.1" 406 97 "http://localhost/account/finish_auth?course_id=course-v1%3ARaifox+CS1010112+2020_T2&enrollment_action=enroll&next=%2Fdashboard" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-"
lms_1 | 172.20.0.1 - - [03/Jun/2020:11:12:48 +0000] "POST /api/commerce/v0/baskets/ HTTP/1.0" 406 97 "http://localhost/account/finish_auth?course_id=course-v1%3ARaifox+CS1010112+2020_T2&enrollment_action=enroll&next=%2Fdashboard" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"
lms_1 | 2020-06-03 11:12:48,629 INFO 10 [tracking] logger.py:50 - {"username": "shashi.kiran", "event_type": "/course_modes/choose/course-v1:Raifox+CS1010112+2020_T2/", "ip": "172.20.0.1", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "host": "localhost", "referer": "http://localhost/account/finish_auth?course_id=course-v1%3ARaifox+CS1010112+2020_T2&enrollment_action=enroll&next=%2Fdashboard", "accept_language": "en-GB,en-US;q=0.9,en;q=0.8", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 5, "org_id": "", "course_id": "", "path": "/course_modes/choose/course-v1:Raifox+CS1010112+2020_T2/"}, "time": "2020-06-03T11:12:48.629706+00:00", "page": null}
nginx_1 | 172.20.0.1 - - [03/Jun/2020:11:12:48 +0000] http://localhost "GET /course_modes/choose/course-v1:Raifox+CS1010112+2020_T2/ HTTP/1.1" 302 0 "http://localhost/account/finish_auth?course_id=course-v1%3ARaifox+CS1010112+2020_T2&enrollment_action=enroll&next=%2Fdashboard" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-"
lms_1 | 172.20.0.1 - - [03/Jun/2020:11:12:48 +0000] "GET /course_modes/choose/course-v1:Raifox+CS1010112+2020_T2/ HTTP/1.0" 302 - "http://localhost/account/finish_auth?course_id=course-v1%3ARaifox+CS1010112+2020_T2&enrollment_action=enroll&next=%2Fdashboard" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"
lms_1 | 2020-06-03 11:12:48,674 INFO 10 [tracking] logger.py:50 - {"username": "shashi.kiran", "event_type": "/verify_student/start-flow/course-v1:Raifox+CS1010112+2020_T2/", "ip": "172.20.0.1", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "host": "localhost", "referer": "http://localhost/account/finish_auth?course_id=course-v1%3ARaifox+CS1010112+2020_T2&enrollment_action=enroll&next=%2Fdashboard", "accept_language": "en-GB,en-US;q=0.9,en;q=0.8", "event": "{\"POST\": {}, \"GET\": {\"purchase_workflow\": [\"single\"]}}", "event_source": "server", "context": {"user_id": 5, "org_id": "", "course_id": "", "path": "/verify_student/start-flow/course-v1:Raifox+CS1010112+2020_T2/"}, "time": "2020-06-03T11:12:48.674457+00:00", "page": null}
lms_1 | 2020-06-03 11:12:48,712 INFO 10 [lms.djangoapps.verify_student.views] views.py:294 - Entering payment flow for user '5', course 'course-v1:Raifox+CS1010112+2020_T2', with current step 'None'
lms_1 | 2020-06-03 11:12:48,779 WARNING 10 [py.warnings] client.py:159 - /openedx/venv/local/lib/python2.7/site-packages/edx_rest_api_client/client.py:159: UserWarning: EdxRestApiClient is deprecated. Use OAuthAPIClient instead.
lms_1 | warnings.warn('EdxRestApiClient is deprecated. Use OAuthAPIClient instead.')
lms_1 |
lms_1 | 2020-06-03 11:12:49,860 ERROR 10 [root] signals.py:21 - Uncaught exception from None
lms_1 | Traceback (most recent call last):
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
lms_1 | response = get_response(request)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
lms_1 | response = self._get_response(request)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
lms_1 | response = self.process_exception_by_middleware(e, request)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
lms_1 | response = wrapped_callback(request, *callback_args, **callback_kwargs)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 185, in inner
lms_1 | return func(*args, **kwargs)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view
lms_1 | return self.dispatch(request, *args, **kwargs)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/views/generic/base.py", line 88, in dispatch
lms_1 | return handler(request, *args, **kwargs)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 67, in _wrapper
lms_1 | return bound_func(*args, **kwargs)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view
lms_1 | return view_func(request, *args, **kwargs)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 63, in bound_func
lms_1 | return func.__get__(self, type(self))(*args2, **kwargs2)
lms_1 | File "/openedx/edx-platform/lms/djangoapps/verify_student/views.py", line 407, in get
lms_1 | processors = ecommerce_api_client(request.user).payment.processors.get()
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/slumber/__init__.py", line 155, in get
lms_1 | resp = self._request("GET", params=kwargs)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/slumber/__init__.py", line 97, in _request
lms_1 | resp = self._store["session"].request(method, url, data=data, params=params, files=files, headers=headers)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 533, in request
lms_1 | resp = self.send(prep, **send_kwargs)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 646, in send
lms_1 | r = adapter.send(request, **kwargs)
lms_1 | File "/openedx/venv/local/lib/python2.7/site-packages/requests/adapters.py", line 516, in send
lms_1 | raise ConnectionError(e, request=request)
lms_1 | ConnectionError: HTTPConnectionPool(host='ecommerce.localhost', port=80): Max retries exceeded with url: /api/v2/payment/processors/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fbe21bf9190>: Failed