Где я могу получить payer_id для выполнения платежа (PayPal)? - PullRequest
0 голосов
/ 05 июня 2018

Работа с PayPal Python REST SDK.После создания платежа нам необходимо выполнить этот платеж.На https://github.com/paypal/PayPal-Python-SDK/blob/master/samples/payment/execute.py - пример кода.Но при выполнении платежа

if payment.execute({"payer_id": "DUFRQ8GWYMJXC"}):  # return True or False
    print("Payment[%s] execute successfully" % (payment.id))
else:
print(payment.error)

нам нужно написать payer_id.Но как я могу это принять?Любые идеи или примеры кода?

1 Ответ

0 голосов
/ 10 сентября 2018

Payerid возвращается в заголовках хоста при обратном вызове. В качестве альтернативы вы можете сделать следующее ..

В процессе создания продажи выполните ...

saleinfo_ = {"intent":"sale",
"redirect_urls":{
    "return_url":("myurlonsuccess"),
    "cancel_url":("myurlonfail")
    },
    "payer":{"payment_method":"paypal"},
    "transactions":[
        {"amount":{"total":out_totaltopay_, "details":{"tax":out_taxes_, "subtotal":out_subtotal_}, "currency":symbol_}, "description":description_}

payment_ = Payment(saleinfo_)

if (payment_.create()):
    token_ = payment_.id

Затем, когда поступит обратный обратный вызов, используйте ...

payment_ = Payment.find(token_)

if (payment_ != None):
    payerid_ = payment_.payer.payer_info.payer_id

    if (payment_.execute({"payer_id":payerid_})):
        ....

Данные json, полученные в процессе поиска, похожи на следующие

{'payment_method': 'paypal', 'status': 'VERIFIED', 'payer_info': {'shipping_address': {'line1': '1 Main St', 'recipient_name': 'Test Buyer', 'country_code': 'US', 'state': 'CA', 'postal_code': '95131', 'city': 'San Jose'}, 'first_name': 'Test', 'payer_id': '<<SOMEID>>', 'country_code': 'US', 'email': 'testbuyer@mydomain.com', 'last_name': 'Buyer'}}

Надеюсь, что поможет

...