https://dev.entrouvert.org/https://dev.entrouvert.org/favicon.ico?15861920342015-11-19T14:03:06ZRedmine Entr’ouvertCombo - Bug #9039: paiement sans être logguéhttps://dev.entrouvert.org/issues/9039?journal_id=373602015-11-19T14:03:06ZBenjamin Dauvergne
<ul></ul><p>Pour la manière je ne saurai dire, mais pour l'usage ce qui était évoqué pour Orléans c'est la possibilité d'avoir une URL qui permette de payer une facture/un pannier sans authentification; la page devra donner des informations minimales sur le paiement, juste un intitulé, les dates d'émission et de limite de paiement et un montant et non pas la totalité de la facture ou son PDF.</p> Combo - Bug #9039: paiement sans être logguéhttps://dev.entrouvert.org/issues/9039?journal_id=373612015-11-19T14:20:47ZThomas Noël
<ul></ul><p>C'est très utile pour permettre à une personne de demander à un tiers de régler une facture. Ceci étant, il faut permettre le paiement tout en diffusant un minimum d'information sur l'objet à payer ; typiquement pas d'accès au PDF détaillant la facture (lieu de scolarisation des enfants, pointages horaires, etc).</p>
Ce qui est en place à Orléans :
<ul>
<li>une URL permet d'accéder à une vue HTML de la facture (avec info minimale, typiquement description+montant dû) ; cette URL comporte un "secret" (code sur 6 à 10 caractère), un code d'accès</li>
<li>cette vue de la facture est enrichie si un utilisateur est loggué et qu'il est propriétaire de la facture (on lui présente aussi les détails, lien vers le PDF, etc)</li>
</ul>
<p>Cette URL "avec un petit code" peut être envoyée au compte lié à la facture dans un mail, ce qui lui permet de la payer rapidement sans se logguer, mais aussi de la diffuser à qui il veut, pour en demander le paiement.</p>
<p>NB: on ajoute un "petit code secret" car les numéros de factures sont en général séquentiels et très faciles à deviner, donc une URL <a class="external" href="https://lingo/invoice/F987123/">https://lingo/invoice/F987123/</a> ne suffit pas, on doit y ajouter <a class="external" href="https://lingo/invoice/F987123/?code=7J9jd81">https://lingo/invoice/F987123/?code=7J9jd81</a></p>
<p>A noter que dans ce cadre, on ne permet pas de grouper un ensemble de factures à payer... ça serait un peu plus compliqué à faire, je pense, ergonomiquement surtout (faire une interface compréhensible par celui qui envoie les choses à payer, puis par celui qui doit les payer).</p>
<p>Voilà, à voir comment on veut généraliser/améliorer.</p> Combo - Bug #9039: paiement sans être logguéhttps://dev.entrouvert.org/issues/9039?journal_id=1234112018-07-31T15:50:19ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-2 status-6 priority-4 priority-default closed" href="/issues/25547">Development #25547</a>: Permettre le paiment en ligne pour un usager sans compte</i> ajouté</li></ul> Combo - Bug #9039: paiement sans être logguéhttps://dev.entrouvert.org/issues/9039?journal_id=1234132018-07-31T15:54:28ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Sujet</strong> changé de <i>paiement sans être loggué (?)</i> à <i>paiement sans être loggué</i></li></ul><p>Parce que la question est revenue, concernant des éléments à payer qui arriveraient via wcs, (et donc la notion de panier dans combo), pour suivre les commentaires posés ci-dessus le plan pourrait être d'offrir un accès direct à un "basketitem" pour payer celui-ci, comme on a lingo/item/(?P<regie_id>[\w,-]+)/(?P<item_crypto_id>[\w,-]+)/ aujourd'hui pour les factures.</p> Combo - Bug #9039: paiement sans être logguéhttps://dev.entrouvert.org/issues/9039?journal_id=1956372019-10-08T13:45:52ZEmmanuel Cazenaveecazenave@entrouvert.com
<ul></ul><p>Je remet les élément posés par Fred dans la thread de mail "Paiement en ligne obligatoire pour les collectivités, chiffrage de <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: paiement sans être loggué (Fermé)" href="https://dev.entrouvert.org/issues/9039">#9039</a>".</p>
<blockquote>
<p>1/ autoriser l'API l'ajout d'éléments à payer ne précisant pas<br />d'usager :</p>
<p><code>@ -125,7 +125,7 </code>@ class AddBasketItemApiView(View):<br />elif request.GET.get('email'):<br />user = User.objects.get(email=request.GET.get('email'))<br />else:<br />- raise Exception('no user specified')<br />+ user = None<br />except User.DoesNotExist:<br />raise Exception('unknown user')</p>
<p>2/ inclure un bout de signature dans l'URL, pour faire genre, (il y a<br />aussi un truc de crypto_id pour les factures, je ne sais plus trop<br />pourquoi on s'était trouvé à faire ça)</p>
<p><code>@ -166,7 +166,7 </code>@ class AddBasketItemApiView(View):<br />item.save()<br />item.regie.compute_extra_fees(user=item.user)</p>
<p>- payment_url = reverse('basket-item-pay-view', kwargs={'item_id': item.id})<br />+ payment_url = reverse('basket-item-pay-view', kwargs={'item_id': item.id, 'signature': XXX})<br />return JsonResponse({'result': 'success', 'id': str(item.id),<br />'payment_url': request.build_absolute_uri(payment_url)})</p>
<p>3/ lors du paiement, s'il y a cette signature, ne pas vérifier<br />l'usager,</p>
<p><code>@ -406,16 +406,18 </code>@ class PayView(PayMixin, View):<br />class BasketItemPayView(PayMixin, View):<br />def get(self, request, *args, **kwargs):<br />next_url = request.GET.get('next_url') or '/'<br />- if not (request.user and request.user.is_authenticated()):<br />- return HttpResponseForbidden(<em class="wiki-class-'No wiki-class-item wiki-class-payment wiki-class-allowed wiki-class-for wiki-class-anonymous wiki-class-users.'">)<br />+ if not valid_signature(...):<br />+ if not (request.user and request.user.is_authenticated()):<br />+ return HttpResponseForbidden(</em>('No item payment allowed for anonymous users.'))</p>
<p>item = BasketItem.objects.get(pk=kwargs['item_id'])<br />regie = item.regie<br />if regie.extra_fees_ws_url:<br />return HttpResponseForbidden(_('No item payment allowed as extra fees set.'))</p>
<p>- if item.user != request.user:<br />- return HttpResponseForbidden(<em class="wiki-class-'Wrong wiki-class-item: wiki-class-payment wiki-class-not wiki-class-allowed.'">)<br />+ if not valid_signature(...):<br />+ if item.user != request.user:<br />+ return HttpResponseForbidden(</em>('Wrong item: payment not allowed.'))</p>
<p>return self.handle_payment(request, regie, [item], [], next_url)</p>
</blockquote> Combo - Bug #9039: paiement sans être logguéhttps://dev.entrouvert.org/issues/9039?journal_id=1965442019-10-13T14:02:17ZEmmanuel Cazenaveecazenave@entrouvert.com
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-2 status-6 priority-4 priority-default closed" href="/issues/36875">Development #36875</a>: Paiement sans authentification : ajustements dans l'API</i> ajouté</li></ul> Combo - Bug #9039: paiement sans être logguéhttps://dev.entrouvert.org/issues/9039?journal_id=1965472019-10-13T14:25:09ZEmmanuel Cazenaveecazenave@entrouvert.com
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-2 status-5 priority-4 priority-default closed" href="/issues/36876">Development #36876</a>: Paiement sans authentification et sans panier</i> ajouté</li></ul> Combo - Bug #9039: paiement sans être logguéhttps://dev.entrouvert.org/issues/9039?journal_id=2209032020-03-14T16:47:47ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Statut</strong> changé de <i>Nouveau</i> à <i>Fermé</i></li></ul><p>C'est désormais possible.</p>