Как получить return_url после подтверждения платежа, чтобы я мог получить идентификатор плательщика в return_url? - PullRequest
2 голосов
/ 12 мая 2019

Для совершения платежа мне нужно идентификатор платежа и идентификатор плательщика.Теперь у меня есть идентификатор платежа, который я получаю из звонка создания платежа.Но идентификатор плательщика не включен внутри.Я понимаю, что можно получить идентификатор плательщика из return_url после подтверждения оплаты.Итак, как мне получить этот return_url / идентификатор плательщика?

Я попытался просмотреть документы на веб-сайте PayPal, и на нем написано «# Выполнить платеж с помощью идентификатора плательщика из вызова создания платежа (после перенаправления)».Это та часть, которую я не могу получить.

class PayPal():
    paypalrestsdk.configure({
        "mode": "sandbox", # sandbox or live
        "client_id": "XXXXXXXXXXXXXXXXXXX",
        "client_secret": "XXXXXXXXXXXXXXXXXX" })

    def create_payment(self):
        payment = paypalrestsdk.Payment({
            "intent": "sale",
            "payer": {
                "payment_method": "paypal"},
            "redirect_urls": {
                "return_url": "http://www.example.com",
                "cancel_url": "http://www.example.com"},
            "transactions": [{
                "item_list": {
                    "items": [{
                        "name": "item",
                        "sku": "pcs",
                        "price": "5.00",
                        "currency": "USD",
                        "quantity": 1}]},
                "amount": {
                    "total": "5.00",
                    "currency": "USD"},
                "description": "This is the payment transaction description."}]})

        if payment.create():
            # Extract redirect url
            for link in payment.links:
                if link.method == "REDIRECT":
                    # Capture redirect url
                    redirect_url = (link.href)
                    webbrowser.open("%s"% (redirect_url))
                    print(link)
            print("Payment created successfully")
            print (payment)
        else:
            print("Error while creating payment:")

            print(payment.error)
    def execute_payment(self):
        payment = paypalrestsdk.Payment.find("%s" % payment.id)
        if payment.execute({"payer_id": "%s" % payment.payerid}):
            print("Payment[%s] execute successfully" % (payment.id))
        else:
            print(payment.error)

Вот что я получаю при вызове создания платежа:

{'intent': 'sale', 'payer': {'payment_method': 'paypal'}, 'redirect_urls ': {' return_url ':' http://www.example.com', 'cancel_url': 'http://www.example.com'},' транзакции ': [{' amount ': {' total ':' 5.00 ',' currency ':'USD '},' description ':' Это описание платежной транзакции. ',' Item_list ': {' items ': [{' name ':' item ',' sku ':' pcs ',' price ':'5.00 ',' валюта ':' USD ',' количество ': 1}]},' related_resources ': []}],' id ':' PAYID-xxxxxxxxxxxxxx ',' state ':' creation ',' create_time ': '2019-05-12T06: 37: 19Z', 'links': [{'href': 'https://api.sandbox.paypal.com/v1/payments/payment/PAYID-xxxxxxxxxxxxxxxxx',' rel ':' self ',' method ':' GET '}, {' href':' https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxxxxxxxxxxxx', 'rel': 'Appro_url', 'method': 'REDIRECT'}, {'href': 'https://api.sandbox.paypal.com/v1/payments/payment/PAYID-xxxxxxxxxxxx/execute',' rel ':' execute ',' method ':'POST'}]}

...