Django-fr

Forum

#1 09-04-2015 19:20:52

Alone9
Membre
Inscription : 29-08-2014
Messages : 32

Transfere d'argent au client avec Django-paypal

Salut,

comment on faire pour envoyer de l'argent à un particulier en toute sécurité avec paypal ? En particulier ce module django-paypal.

UPDATE: J'ai trouvé un truc mais je n'arrive pas à le faire fonctionner correctement.

import urllib, urllib.parse, urllib.request
import datetime
import hashlib as md5


class PayPal:
    """ #PayPal utility class"""
    signature_values = {}
    API_ENDPOINT = ""
    PAYPAL_URL = ""
    
    def __init__(self):
        ## Sandbox values
        self.signature_values = {
        'USER' : '??????', # Edit this to your API user name
        'PWD' : '??????', # Edit this to your API password
        'SIGNATURE' : '??????', # edit this to your API signature
        'VERSION' : '53.0',
        }
        self.API_ENDPOINT = 'https://api-3t.sandbox.paypal.com/nvp' # Sandbox URL, not production
        self.PAYPAL_URL = 'https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token='
        self.signature = urllib.parse.urlencode(self.signature_values) + "&"

    # API METHODS
                
    def MassPay(self, email, amt, note, email_subject):
#        unique_id = str(md5.new(str(datetime.datetime.now())).hexdigest())
        params = {
            'METHOD' : "MassPay",
            'RECEIVERTYPE' : "EmailAddress",
            'L_AMT0' : amt,
            'CURRENCYCODE' : 'EUR',
            'L_EMAIL0' : email,
#            'L_UNIQUE0' : unique_id,
            'L_NOTE0' : note,
            'EMAILSUBJECT': email_subject,
        }
        params_string = self.signature + urllib.parse.urlencode(params)
        response = urllib.request.urlopen(self.API_ENDPOINT, params_string.encode('utf-8')).read()
        response_tokens = {}
        for token in response.split('&'):
            response_tokens[token.split("=")[0]] = token.split("=")[1]
        for key in response_tokens.keys():
                response_tokens[key] = urllib.unquote(response_tokens[key])
        response_tokens['unique_id'] = unique_id
        return response_tokens
views.py
def wallet(request):
    paypal=PayPal()
    pp_mass=paypal.MassPay('test01@test01.fr', '260', 'TEST', 'test01@test01.fr')
    return render(request, "wallet/wallet.html", {})
views.py
Type str doesn't support the buffer API
error : for token in response.split('&'):

L'argent est bien transféré quand la vue est appelé mais je reçois une erreur qui empêche que la page se charge(500).

Dernière modification par Alone9 (10-04-2015 07:11:29)

Hors ligne

#2 10-04-2015 09:25:33

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : Transfere d'argent au client avec Django-paypal

Bonjour,

Si tu utilises Python3, il semble que la lib ne soit pas totalement compatible.

Hors ligne

#3 10-04-2015 15:27:23

Alone9
Membre
Inscription : 29-08-2014
Messages : 32

Re : Transfere d'argent au client avec Django-paypal

Oui, mais quel lib n'est pas compatible ? Il n'y a pas d'équivalence en Python3 ?

Hors ligne

Pied de page des forums