2016-05-02 4 views
2

Прежде всего, я новичок в paypal адаптивных платежах, до сих пор я использовал только REST api.Paypal Adaptive/Chained Payments Workflow

У меня проблемы с пониманием полного потока приложений при осуществлении адаптивных платежей.

В REST api я перемещаю пользователя на страницу PayPal, где он платит и получает перенаправление на мою страницу, где я могу реагировать на результат.

Используя адаптивные платежи, пользователь не перенаправляется сразу после оплаты. Поэтому я не могу гарантировать, что он откроет данную страницу переадресации.

Похоже, что ipn является решением для этого, однако я не уверен, как это реализовать правильно.

Я использовал пример, который я нашел и зарегистрировал результат, который iresults в следующей записи в журнале. У меня есть проблемы, чтобы интерпретировать результат. Он генерируется с использованием симулятора ipn.

[2016-05-02 20:17 UTC] HTTP request of validation request:POST /cgi-bin/webscr HTTP/1.1 
Host: www.sandbox.paypal.com 
Accept: */* 
Connection: Close 
Content-Length: 943 
Content-Type: application/x-www-form-urlencoded 

for IPN payload: cmd=_notify-validate&payment_type=instant&payment_date=Mon+May+02+2016+22%3A17%3A33+GMT%2B0200+%28Mitteleurop%C3%A4ische+Sommerzeit%29&payment_status=Completed&address_status=confirmed&payer_status=verified&first_name=John&last_name=Smith&payer_email=buyer%40paypalsandbox.com&payer_id=TESTBUYERID01&address_name=John+Smith&address_country=United+States&address_country_code=US&address_zip=95131&address_state=CA&address_city=San+Jose&address_street=123+any+street&business=seller%40paypalsandbox.com&receiver_email=seller%40paypalsandbox.com&receiver_id=seller%40paypalsandbox.com&residence_country=US&item_name1=something&item_number1=AK-1234&tax=2.02&mc_currency=USD&mc_fee=0.44&mc_gross=12.34&mc_gross_1=12.34&mc_handling=2.06&mc_handling1=1.67&mc_shipping=3.02&mc_shipping1=1.02&txn_type=cart&txn_id=250343399&notify_version=2.1&custom=xyz123&invoice=abc1234&test_ipn=1&verify_sign=AFcWxV21C7fd0v3bYYYRCpSSRl31AIR-7FrBuOZZqJMDr8d5DxEI9rpG 
[2016-05-02 20:17 UTC] HTTP response of validation request: HTTP/1.1 200 OK 
Date: Mon, 02 May 2016 20:17:42 GMT 
Server: Apache 
X-Frame-Options: SAMEORIGIN 
Set-Cookie: c9MWDuvPtT9GIMyPc3jwol1VSlO=vKsQ6Wsa8-CKaGYKLQkEziH8epLey-sigvcn6CGIx_BbN7f2lkSe4OGhXkrOoD98VscO4s-IeGzIJCQSjGbkN5Zy8ggokZMUzKgmU3DXPZQ12IS1gqWwws-ZbEZwuGYp75eS0cS94sdZ7NduMDdd-wj9neb47z6x3sZOBs76MeZAu3aVS0hQFhfLWtTs5kGfVtFWpDMlA-h6xzEk1jTOteInNMwwvIKfcctwTP0lq7HdBsSpBOxgGkj5aGqanty9RiMlioT_7_3I93WK2S1pTJuN5HIIuS4Ci3HuXUkgin6ian6oEhLnCPodUjWa_VIVmAUkxmVcrb1AOxLDa0lBYfV5b7vnHTHWkxtct-r7YQKX6un7_RyfeOrlSODOK-1FPcaQl6R5W7bQEuvm98K4kECj_EkvIFeUcjZWQ7wUx5Lc-Sja3yZDfFrWSvS; domain=.paypal.com; path=/; Secure; HttpOnly 
Set-Cookie: cookie_check=yes; expires=Thu, 30-Apr-2026 20:17:42 GMT; domain=.paypal.com; path=/; Secure; HttpOnly 
Set-Cookie: navcmd=_notify-validate; domain=.paypal.com; path=/; Secure; HttpOnly 
Set-Cookie: navlns=0.0; expires=Wed, 02-May-2018 20:17:42 GMT; domain=.paypal.com; path=/; Secure; HttpOnly 
Set-Cookie: Apache=10.72.108.11.1462220262202022; path=/; expires=Wed, 25-Apr-46 20:17:42 GMT 
Vary: Accept-Encoding,User-Agent 
Connection: close 
HTTP_X_PP_AZ_LOCATOR: sandbox.slc 
Paypal-Debug-Id: ed99d0b22cb7d 
Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.WEB.1%26silo_version%3D1880%26app%3Dappdispatcher%26TIME%3D3870631767%26HTTP_X_PP_AZ_LOCATOR%3Dsandbox.slc; Expires=Mon, 02 May 2016 20:47:42 GMT; domain=.paypal.com; path=/; Secure; HttpOnly 
Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT 
Strict-Transport-Security: max-age=14400 
Transfer-Encoding: chunked 
Content-Type: text/html; charset=UTF-8 

INVALID 
[2016-05-02 20:17 UTC] Invalid IPN: cmd=_notify-validate&payment_type=instant&payment_date=Mon+May+02+2016+22%3A17%3A33+GMT%2B0200+%28Mitteleurop%C3%A4ische+Sommerzeit%29&payment_status=Completed&address_status=confirmed&payer_status=verified&first_name=John&last_name=Smith&payer_email=buyer%40paypalsandbox.com&payer_id=TESTBUYERID01&address_name=John+Smith&address_country=United+States&address_country_code=US&address_zip=95131&address_state=CA&address_city=San+Jose&address_street=123+any+street&business=seller%40paypalsandbox.com&receiver_email=seller%40paypalsandbox.com&receiver_id=seller%40paypalsandbox.com&residence_country=US&item_name1=something&item_number1=AK-1234&tax=2.02&mc_currency=USD&mc_fee=0.44&mc_gross=12.34&mc_gross_1=12.34&mc_handling=2.06&mc_handling1=1.67&mc_shipping=3.02&mc_shipping1=1.02&txn_type=cart&txn_id=250343399&notify_version=2.1&custom=xyz123&invoice=abc1234&test_ipn=1&verify_sign=AFcWxV21C7fd0v3bYYYRCpSSRl31AIR-7FrBuOZZqJMDr8d5DxEI9rpG 
+0

Вы когда-нибудь это выясняли? Я использую .NET SDK и задаюсь вопросом то же самое. Как вы подтверждаете авторизацию, если пользователь закрывается перед перенаправлением? Я пробовал процесс IPN, но, похоже, я не получаю сообщение после авторизации. Инициатор IPN работает, но тест на песочницу не работает. – WonderGrub

ответ

1

Да, ответ, который вы ищете, это IPN. Есть шаги для реализации потока.

Во-первых, в настройках вашей песочницы вы должны включить Мгновенное уведомление об оплате и предоставить ему URL-адрес. Теперь вы можете просто ввести фиктивную ссылку, потому что вы можете перезаписать ее фактическим вызовом платежа. Имейте в виду, что вы должны предоставить реальный URL-адрес, потому что PayPal не может видеть ваш localhost.

Затем вы должны внедрить прослушиватель IPN в свой код. Я думаю, это поможет вам в этом. Я сделал это на C#, поэтому не могу предоставить вам точный код. Для вас важно указать некоторую информацию для оплаты в платежном вызове paypal, чтобы вы могли получить ее в IPN и определить, за какой платеж вы получаете уведомление.

Btw, вы можете указать ReturnURL и CancelURL в платежном вызове paypal, чтобы пользователь автоматически перенаправлялся туда, где вы хотите, после того как он выполнил платеж.

Смежные вопросы