def handle_notification(request): if request.method == 'POST': xml = request.raw_post_data recurly = Recurly(**settings.RECURLY) note_type = recurly.parse_notification(xml) note_data = recurly.response print note_type, note_data
def test_subscription_notification(self): recurly = Recurly() xml = """ <?xml version="1.0" encoding="UTF-8"?> <new_subscription_notification> <account> <account_code>123</account_code> <username>user</username> <email>[email protected]</email> <first_name>Verena</first_name> <last_name>Test</last_name> <company_name></company_name> </account> <subscription> <plan> <plan_code>daily</plan_code> <name>daily</name> <version type="integer">2</version> </plan> <state>pending</state> <quantity type="integer">1</quantity> <total_amount_in_cents type="integer">245</total_amount_in_cents> <activated_at type="datetime">2010-01-23T21:37:31-08:00</activated_at> <canceled_at type="datetime"></canceled_at> <expires_at type="datetime"></expires_at> <current_period_started_at type="datetime">2010-01-23T21:37:31-08:00</current_period_started_at> <current_period_ends_at type="datetime">2010-01-24T21:37:31-08:00</current_period_ends_at> <trial_started_at type="datetime"></trial_started_at> <trial_ends_at type="datetime"></trial_ends_at> </subscription> </new_subscription_notification> """ note_type = recurly.parse_notification(xml) note_data = recurly.response self.assertEqual(note_type, 'new_subscription_notification') self.assertEqual(note_data['account']['account_code'], '123') self.assertEqual(note_data['subscription']['state'], 'pending')
def test_account_notification(self): recurly = Recurly() xml = """ <?xml version="1.0" encoding="UTF-8"?> <new_account_notification> <account> <account_code>test_account</account_code> <username>user</username> <email>[email protected]</email> <first_name>Verena</first_name> <last_name>Test</last_name> <company_name></company_name> </account> </new_account_notification> """ note_type = recurly.parse_notification(xml) note_data = recurly.response self.assertEqual(note_type, 'new_account_notification') self.assertEqual(note_data['account']['account_code'], 'test_account') self.assertEqual(note_data['account']['first_name'], 'Verena')