PayPal Использование Payflow для создания регулярного платежа с учетной записью PayPal

Мои клиенты не хотят обрабатывать данные кредитных карт, поэтому я реализовал 2 варианта: 1) PayPal Advanced с размещенными страницами и 2) прозрачное перенаправление PayPal Pro. Я могу создавать регулярные платежи с помощью

  1. Получение моего безопасного токена
  2. Совершение транзакции
  3. Преобразование транзакции в повторяющийся профиль выставления счетов

PayPal требует, чтобы я предоставил пользователю возможность оплатить с помощью учетной записи PayPal, но когда я конвертирую этот платеж в RBP, а затем позволяю ему создать транзакцию, транс не удается с результатом 7 - Ошибка формата поля. Я заметил, что созданный RBP не имеет номера счета.

С вариантом 1 думаю мне не повезло да?

В варианте 2 я использую dll Payflow.net для обработки EC, который отлично работает (см. пример кода). Есть ли где-нибудь пример кода о том, как создать RBP с токеном вместо номера CC или BAID?

...
partner = pageSettings.PageSettings["PayPalPartner"];
vendor = pageSettings.PageSettings["PayPalLogin"];
user = pageSettings.PageSettings["PayPalUser"];
pwd = Utilities.DecryptSettingValue(pageSettings.PageSettings["PayPalPassword"])
UserInfo creds = new UserInfo(user, vendor, partner, pwd);
string url = ConfigurationManager.AppSettings.Get("PayflowLive");
PayflowConnectionData connection = new PayflowConnectionData(url);
ECDoRequest doRequest = new ECDoRequest(token, payerID);
PayPalTender tender = new PayPalTender(doRequest);
Invoice inv = new Invoice();
inv.Amt = new Currency(amount, "USD");
inv.Comment1 = fundName;
SaleTransaction trans = new SaleTransaction(creds, connection, inv, tender, PayflowUtility.RequestId);
Response resp = trans.SubmitTransaction();

person nuander    schedule 19.09.2014    source источник


Ответы (1)


У меня нет кода, но я могу подсказать вам, как создать повторяющийся профиль с помощью PayPal Payments . Он включает в себя четыре шага:

<сильный>1. Вызов API SetExpressCheckout

VENDOR=XXXXXXX&PARTNER=XXXXXXX&USER=XXXXXXXXX&PWD=XXXXXX&TRXTYPE=A&ACTION=S&TENDER=P&RETURNURL=http://return.com&CANCELURL=http://cancel.com&AMT=0.00&BA_DESC=purchase Time magazine&BILLINGTYPE=MerchantInitiatedBilling&PAYMENTTYPE=any&BA_CUSTOM=magazine subscription

NVP Response:
RESULT=0
RESPMSG=Verified
TOKEN=EC-8DA60888D41196708
CORRELATIONID=f4df94a3345b6 

2. Перенаправьте клиента, используя сгенерированный токен:

https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-8DA60888D41196708

<сильный>3. Как только покупатель примет соглашение, используйте токен, чтобы получить идентификатор соглашения о выставлении счетов.

NVP Request:
VENDOR=XXXXXX&PARTNER=XXXXXXX&USER=XXXXXXXX&PWD=XXXXX&TRXTYPE=A&ACTION=X&TENDER=P&TOKEN=EC-8DA60888D41196708

NVP Response:
RESULT=0
PNREF=B1PP7A2F8154
RESPMSG=Approved
TOKEN=EC-8DA60888D41196708
CORRELATIONID=49d6b0037408
BAID=B-6A290557S1180001J 

<сильный>4. Получив BAID , позвоните, чтобы создать периодическую оплату с помощью BAID.

NVP Request:
VENDOR=XXXX&PARTNER=XXXX&USER=XXXXXX&PWD=XXXXX&TRXTYPE=R&TENDER=P&ACTION=A&PROFILENAME=RegularSubscription&AMT=4.46&BAID=B-6A290557S1180001J&START=09212014&PAYPERIOD=WEEK&TERM=12&MAXFAILPAYMENTS=1&RETRYNUMDAYS=1&CURRENCY=USD

NVP Response:
RESULT=0
RPREF=R1P57A2F8538
PROFILEID=RT0000000010
RESPMSG=Approved
person Eshan    schedule 19.09.2014
comment
Очень подробно THX. Действие=X на шаге 3 для меня новое. Я попробую это в понедельник. - person nuander; 20.09.2014
comment
Я работаю над этим сейчас, спасибо. Я сделал все кодирование, но мне нужно включить эталонные транзакции в учетной записи, так что это займет еще пару дней. - person nuander; 26.09.2014
comment
ОК, это успешно создало RBP. Однако нет типа учетной записи или номера учетной записи, поэтому я скептически отношусь к тому, будет ли это успешно создавать повторяющуюся транзакцию. Я узнаю завтра. - person nuander; 26.09.2014
comment
Это также успешно создало транзакцию, ОДНАКО, созданное IPN было типом merch_pmt и не содержало ничего, связывающего его с исходной транзакцией или RBP. Это из-за настройки BillingType? Также есть это настраиваемое поле, поэтому я буду экспериментировать с ним. - person nuander; 29.09.2014