Esempio n. 1
0
 def create(self, request, *args, **kwargs):
     serializer = self.get_serializer_class()(data=self.request.data)
     if serializer.is_valid(raise_exception=True):
         order = self.get_order()
         transaction_redirect = order.payment_method.get_payment_process_response(
             order=order,
             urls=PaymentUrls(
                 return_url=serializer.validated_data.get(
                     'return_url',
                     convert_to_secure_url(
                         request.build_absolute_uri(
                             self._reverse_url(
                                 'public_api:payments-callback-list'))),
                 ),
                 cancel_url=serializer.validated_data.get(
                     'cancel_url',
                     convert_to_secure_url(
                         request.build_absolute_uri(
                             self._reverse_url(
                                 'public_api:payments-cancel-list'))),
                 ),
                 payment_url=None))
         return Response(
             TransactionSerializer({
                 'payment_url': transaction_redirect.url
             }).data)
Esempio n. 2
0
def get_payment_urls(request, order):
    """
    :type request: django.http.HttpRequest
    """
    kwargs = dict(pk=order.pk, key=order.key)

    def absolute_url_for(name):
        return request.build_absolute_uri(reverse(name, kwargs=kwargs))

    return PaymentUrls(
        payment_url=absolute_url_for("shuup:order_process_payment"),
        return_url=absolute_url_for("shuup:order_process_payment_return"),
        cancel_url=absolute_url_for("shuup:order_payment_canceled"),
    )