когда платеж будет завершен с использованием PayPal Python SDK? - PullRequest
0 голосов
/ 04 июня 2019

Я использовал код, указанный в https://github.com/paypal/PayPal-Python-SDK, для создания платежа. Вопрос на каком этапе платеж завершен? Насколько я понимаю, он завершается после «Авторизовать платеж» и перед перенаправлением пользователя на «return_url», потому что я думаю, что «return_url» должен сделать что-то вроде «сказать пользователю, что платеж завершен», не выполняя платеж. Я не уверен, правильно ли я думал. Ниже поток платежей.

Создание платежа в приложении python

... skipped
"return_url": "xxx.com/payment/execute",
...

Авторизовать оплату в приложении python

...
Redirect user to approval_url (paypal page)
...

После того, как пользователь заполнил всю информацию в PayPal, он перенаправляет пользователя на return_url, который ниже.

Выполнить платеж в xxx.com/payment/execute

...
curl 'https://api.sandbox.paypal.com/v1/payments/payment/'+paymentId+'/execute';
...

после этого я получаю JSON

    {
  "id": "PAYID-LT3I25Y9M527750ER784091X",
  "intent": "sale",
  "state": "approved",
  "cart": "1L498981HN342484R",
  "payer": {
    "payment_method": "paypal",
    "status": "UNVERIFIED",
    "payer_info": {
      "email": "ji@gmail.com",
      "first_name": "ukf",
      "last_name": "tfutf",
      "payer_id": "ZD7ELNRCHVLPY",
      "shipping_address": {
        "recipient_name": "ukf tfutf",
        "line1": "ktf",
        "city": "ktfu",
        "state": "",
        "postal_code": "",
        "country_code": "HK"
      },
      "country_code": "HK"
    }
  },
  "transactions": [
    {
      "amount": {
        "total": "5.00",
        "currency": "USD",
        "details": {}
      },
      "payee": {
        "merchant_id": "4J8HJBF56QT24",
        "email": "facilitator@gmail.com"
      },
      "description": "This is the payment transaction description.",
      "item_list": {
        "items": [
          {
            "name": "item",
            "sku": "item",
            "price": "5.00",
            "currency": "USD",
            "quantity": 1
          }
        ],
        "shipping_address": {
          "recipient_name": "ukf tfutf",
          "line1": "ktf",
          "city": "ktfu",
          "state": "",
          "postal_code": "",
          "country_code": "HK"
        },
        "shipping_options": [
          null
        ]
      },
      "related_resources": [
        {
          "sale": {
            "id": "96712163V8788712D",
            "state": "completed",
            "amount": {
              "total": "5.00",
              "currency": "USD",
              "details": {
                "subtotal": "5.00"
              }
            },
            "payment_mode": "INSTANT_TRANSFER",
            "protection_eligibility": "ELIGIBLE",
            "protection_eligibility_type": "ITEM_NOT_RECEIVED_ELIGIBLE, UNAUTHORIZED_PAYMENT_ELIGIBLE",
            "transaction_fee": {
              "value": "0.47",
              "currency": "USD"
            },
            "receipt_id": "2545046194101961",
            "parent_payment": "PAYID-LT3I25Y9M527750ER784091X",
            "create_time": "2019-06-04T15:29:48                  Z",
            "update_time": "2019-06-04T15:29:48                  Z",
            "links": [
              {
                "href": "https://api.sandbox.paypal.com/v1/payments/sale/96712163V8788712D",
                "rel": "self",
                "method": "GET"
              },
              {
                "href": "https://api.sandbox.paypal.com/v1/payments/sale/96712163V8788712D/refund",
                "rel": "refund",
                "method": "POST"
              },
              {
                "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAYID-LT3I25Y9M527750ER784091X",
                "rel": "parent_payment",
                "method": "GET"
              }
            ],
            "soft_descriptor": "PAYPAL *TESTFACILIT"
          }
        }
      ]
    }
  ],
  "create_time": "2019-06-04T15:29:49   Z",
  "links": [
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAYID-LT3I25Y9M527750ER784091X",
      "rel": "self",
      "method": "GET"
    }
  ]
}

1 Ответ

0 голосов
/ 05 июня 2019

Платеж завершается на стороне PayPal, когда пользователь утверждает платеж на сайте PayPal. После этого он перенаправляет пользователя на redirect_url. Эта веб-страница действительно должна информировать пользователя о том, что его оплата завершена. Вполне вероятно, что вы можете проверить эту транзакцию / платеж в песочнице PayPal, если она не произошла ошибка.

Также обратите внимание, что используемый вами SDK скоро станет устаревшим. На github, на который вы ссылаетесь, написано: «Обратите внимание, что если вы интегрируетесь с PayPal Checkout, этот SDK и соответствующий API v1 / payment находятся в процессе устаревания». Вместо этого я бы порекомендовал вам попробовать интегрироваться с этим SDK: https://github.com/paypal/Checkout-Python-SDK, который является новейшей версией PayPal. В дополнение к использованию более нового SDK я бы рекомендовал использовать кнопки Smart Checkout PayPal. Они должны сделать вашу жизнь немного проще.

Я использовал эти SDK в различных проектах в течение последних двух месяцев и лично не нашел это простым процессом, но, надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...