Платежные соглашения с PHP REST SDK Paypal

Я пытаюсь обернуть голову вокруг потока подписок Paypals.

У нас есть поток:

1.) Создать тарифный план
2.) Активировать тарифный план
3.) Создайте соглашение о выставлении счета (используя активированный план, отправьте клиента на адрес PayPal)
4.) Клиент подтверждает, возвращает обратно на наш URL, выполняет с предоставленным токеном

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу сослаться ни на один идентификатор, возвращенный на шаге 4, на что-либо, предоставленное в первых трех шагах.

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

1

Решение

Как упомянуто PayPal_Orcun, проблема все еще находится на рассмотрении и решается внутренне в PayPal, однако, в то же время, есть кое-что, что вы могли бы сделать здесь.

  1. На шаге 3 после создания соглашения вы получаете ссылку для утверждения, которая выглядит следующим образом:

    https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&маркер = EC-8DL20958WD398123E

  2. Здесь скопируйте токен и сохраните его в базе данных. Думайте об этом как уникальный идентификатор.

  3. Выполните платеж. Когда он возвращается, PayPal будет перенаправлять обратно с URL-адресом, как это:

    HTTP: //localhost/paypal/PayPal-PHP-SDK/sample/billing/ExecuteAgreement.php успех = истина&маркер = EC-8DL20958WD398123E

Как видите, вы могли бы сделать $_GET['token'] чтобы получить токен здесь и сравнить с созданным. Вы можете использовать ID возвращается при успешном выполнении и замените поле токена новым полем идентификатора.

Я согласен, это не то, что вы ожидаете, но это определенно позволит вам подключить соглашение после create а также execute звонки.

Надеюсь, это помогло.

2

Другие решения

Вот как работают планы выставления счетов REST API и соглашения о выставлении счетов (включая примеры вызовов curl):

Прежде всего, пожалуйста, убедитесь, что ваше REST-приложение переключено на подписку (вы можете проверить настройки REST-приложения в https://developer.paypal.com/webapps/developer/applications/myapps )

1-) Создать тарифный план

curl -k -v -H «Тип контента: application / json» -H «Авторизация: Носитель ACCESS_TOKEN» -d ‘{«name»: «План тестирования клуба REST», «description»: «Создание шаблона.», » type «:» fixed «,» payment_definitions «: [{» name «:» Regular Payments «,» type «:» REGULAR «, «quency»: «MONTH», «interval_interval»: «2», «amount»: { «значение»: «100», «валюта»: «USD»}, «циклы»: «12», «charge_models»: [{ «типа»: «ШИППИНГ», «количество»: { «значение»:» 10″ , «валюта»: «USD»}}, { «типа»: «налог», «количество»: { «значение»: «12», «валюта»: «USD»}}]}], «merchant_preferences «: {» setup_fee «: {» значение «:» 1″ , «валюта»: «USD»}, «RETURN_URL»: «HTTP: // ReturnUrl», «cancel_url»: «HTTP: // cancelurl»,» auto_bill_amount «:» ДА», «initial_fail_amount_action»: «ПРОДОЛЖИТЬ», «max_fail_attempts»: «0»}}» https://api.sandbox.paypal.com/v1/payments/billing-plans

PayPal вернет идентификатор тарифного плана, начинающийся с «P-»

2-) Активировать тарифный план

curl -k -v -H «Content-Type: application / json» -H «Авторизация: Носитель ACCESS_TOKEN» -d ‘[{«path»: «/», «value»: {«state»: «ACTIVE»} , «ор»: «заменить»}] https://api.sandbox.paypal.com/v1/payments/billing-plans/

3-) Создать соглашение о выставлении счетов

curl -k -v -H «Тип контента: application / json» -H «Авторизация: Носитель ACCESS_TOKEN» -d ‘{«name»: «План тестирования клуба REST», «description»: «Создание шаблона.», » start_date «:» 2015-03-20T07: 49: 27-07: 00″ , «план»: { «ID»: «PLAN_ID_HERE»}, «плательщик»: { «PAYMENT_METHOD»: «PayPal»}, «shipping_address» : {«line1»: «111 First Street», «city»: «Saratoga», «state»: «CA», «postal_code»: «95070», «country_code»: «US»}} ‘ https://api.sandbox.paypal.com/v1/payments/billing-agreements

PayPal вернет URL для переадресации Express Checkout с токеном EC. Например. https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&маркер = EC-xxxxxxxxxxxxxxxxx

Вам нужно перенаправить своего клиента в PayPal через этот URL. Как только соглашение о выставлении счетов будет авторизовано, клиент возвращается на ваш сайт (return_url на шаге 1).

4-) оформить биллинговое соглашение

curl -k -v -H «Тип контента: application / json» -H «Авторизация: Носитель ACCESS_TOKEN» -d ‘{}’ https://api.sandbox.paypal.com/v1/payments/billing-agreements/EC-TOKEN_HERE/agreement-execute

0

Решение, которое я использовал для этой же проблемы, было установить override_merchant_preferences в договоре о выставлении счета, с return_url содержащий идентификатор пользователя в запросе, например www.domain.com/api/handler.php?uid=42&action=return,

0
По вопросам рекламы [email protected]