lingo: add transaction id and date to invoice payment notification (#9280)
Send data through POST
This commit is contained in:
parent
1b6b570981
commit
a2fe92d59d
|
@ -109,8 +109,8 @@ class Regie(models.Model):
|
|||
url = self.webservice_url + '/invoices/'
|
||||
if past:
|
||||
url += 'history'
|
||||
items = self.get_url(context['request'], url,
|
||||
NameID=mellon['name_id_content']).json()
|
||||
items = requests.get(self.signed_url(context['request'], url,
|
||||
NameID=mellon['name_id_content'])).json()
|
||||
if items.get('data'):
|
||||
return [build_remote_item(item, self) for item in items.get('data')]
|
||||
return []
|
||||
|
@ -124,7 +124,8 @@ class Regie(models.Model):
|
|||
if hasattr(request, 'session') and request.session.get('mellon_session'):
|
||||
mellon = request.session.get('mellon_session')
|
||||
url = self.webservice_url + '/invoice/%s/pdf' % item_id
|
||||
return self.get_url(request, url, NameID=mellon['name_id_content'])
|
||||
return requests.get(self.signed_url(request, url,
|
||||
NameID=mellon['name_id_content']))
|
||||
raise PermissionDenied
|
||||
|
||||
def get_item(self, request, item):
|
||||
|
@ -134,26 +135,29 @@ class Regie(models.Model):
|
|||
if hasattr(request, 'session') and request.session.get('mellon_session'):
|
||||
mellon = request.session.get('mellon_session')
|
||||
url = self.webservice_url + '/invoice/%s/' % item
|
||||
item = self.get_url(request, url,
|
||||
NameID=mellon['name_id_content']).json()
|
||||
item = requests.get(self.signed_url(request, url,
|
||||
NameID=mellon['name_id_content'])).json()
|
||||
return build_remote_item(item.get('data'), self)
|
||||
return {}
|
||||
|
||||
def pay_item(self, request, item):
|
||||
url = self.webservice_url + '/invoice/%s/pay/' % item
|
||||
return self.get_url(request, url)
|
||||
def pay_item(self, request, item, transaction_id, transaction_date):
|
||||
url = self.webservice_url + '/invoice/pay/'
|
||||
data = {'invoice_id': item, 'transaction_id': transaction_id,
|
||||
'transaction_date': transaction_date.strftime('%Y-%m-%dT%H:%M:%S')}
|
||||
headers = {'content-type': 'application/json'}
|
||||
return requests.post(self.signed_url(request, url),
|
||||
data=json.dumps(data), headers=headers).json()
|
||||
|
||||
def as_api_dict(self):
|
||||
return {'slug': self.slug,
|
||||
'label': self.label,
|
||||
'description': self.description}
|
||||
|
||||
def get_url(self, request, url, **params):
|
||||
def signed_url(self, request, url, **params):
|
||||
orig = request.get_host()
|
||||
url += '?orig=' + orig +'&' + urllib.urlencode(params)
|
||||
signature_key = settings.LINGO_SIGNATURE_KEY
|
||||
url = sign_url(url, key=signature_key)
|
||||
return requests.get(url)
|
||||
return sign_url(url, key=signature_key)
|
||||
|
||||
|
||||
class BasketItem(models.Model):
|
||||
|
|
|
@ -200,7 +200,8 @@ class CallbackView(View):
|
|||
pass
|
||||
if transaction.remote_items:
|
||||
for item in transaction.remote_items.split(','):
|
||||
regie.pay_item(request, item)
|
||||
regie.pay_item(request, item, transaction.order_id,
|
||||
transaction.end_date)
|
||||
|
||||
return HttpResponse()
|
||||
|
||||
|
|
Loading…
Reference in New Issue