Create Zendesk tickets for PayPal disputes

Description

As a Support Team member, I would like a Zendesk ticket to be created when a user submits a PayPal dispute.

Background
Currently all PayPal dispute notifications are sent to paypal@edx.org. If no one is actively monitoring this mailing list, claims/disputes will get ignored, resulting in edX losing the dispute and the revenue for the order. The Support Team uses Zendesk, so we need to notify them there. Besides making life for the team easier, we can maintain a good rapport with our learners and with PayPal.

Acceptance Criteria

  1. Verify that a ticket is created in Zendesk when a user submits a claim/dispute against a PayPal purchase.

  2. Verify the ticket includes a link to the PayPal dispute.

Technical Discovery

  1. PayPal supports webhooks: https://developer.paypal.com/docs/integration/direct/rest-webhooks-overview/

  2. We can use Amazon's API Gateway with a lambda to receive the webhook notifications and create tickets, without having to deploy a new service.

    • Secrets can be stored in stage variables, rather than the lambda code itself.

  3. Create a new endpoint at /payment/paypal/webhook/.

Sample Event

Link to dispute: https://www.paypal.com/us/cgi-bin/webscr?cmd=_unauth-view-details&cid=PP-004-754-669-445

Epic Link

None

Activity

Show:
ClintonB
October 27, 2017, 6:13 PM

I have closed my PR (https://github.com/edx/ecommerce/pull/754) without merging.

ClintonB
December 18, 2016, 11:43 PM

//, please prioritize appropriately.

Simon Chen
June 20, 2016, 3:49 PM

Hmm... Maybe we should meet to do knowledge transfer? I'll schedule sometime with you later to gather more details. However, feel free to say no if you got this.

ClintonB
June 20, 2016, 3:33 PM

Maybe. I've started much of the work. The actual Zendesk integration needs to be setup/tested.

Simon Chen
June 20, 2016, 3:30 PM

Do you think this is a good ticket for the lahore quick hits team to pick up? I don't know if your team have the time to get a start on this request?

Priority

Unset

Assignee

Unassigned

Fix versions

None

Story Points

3

Reporter

ClintonB