Как интегрировать код BN с XML Pay? (PayPal Payflow Pro)

Мы используем PayPal на веб-сайте PayPal PayPlow Pro для обработки кредитных карт на нашем веб-сайте, и недавно мы присоединились к партнерской программе PayPal, которая позволяет указывать "BN-код" для каждой обработанной транзакции, чтобы получить за нее кредит. Единственная проблема... вся документация по использованию кодов BN относится к устаревшему стилю обработки транзакций Express Checkout (который в основном просто отправлял данные формы в виде длинной строки запроса), а не к текущей модели с XMLPay,

В старой модели этот "код BN" был указан как BUTTONSOURCE параметр, и поэтому я знаю, чтобы использовать <ButtonSource> тег в XMLPay. Однако я не знаю, где это поставить.

Ни Руководство для разработчиков XMLPay, ни Выпуск через веб-сайт Payments Pro Payflow - Руководство разработчика XMLPay не показалось очень полезным для ответа на этот вопрос. Они приводят примеры размещения <ButtonSource> пометить сразу внутри <PayPal> тег, который используется в качестве <Tender>, Проблема в том, что большинство наших клиентов не будут использовать PayPal в качестве тендера; они будут использовать свои кредитные карты.

Я попробовал несколько транзакций, перемещая <ButtonSource> пометить в разных местах, как внутри <PayPal> теги и одиноко стоящие без них. С каждой новой попыткой либо транзакция была отклонена, либо код просто не прошел.

Вот пример запроса XMLPay, который мы отправляем в PayPal. Я знаю, что это не правильное размещение <ButtonSource> тег, но кто-то может сказать мне, где мне нужно разместить этот тег? Или вы могли бы просто опубликовать исправленную копию этого XML, которая делает это правильно?


<?xml version="1.0" encoding="UTF-8"?>
<XMLPayRequest xmlns="http://www.paypal.com/XMLPay" Timeout="30" Version="2.0">
  <RequestData>
    <Vendor>************</Vendor>
    <Partner>PayPal</Partner>
    <Transactions>
      <Transaction>
        <Sale>
          <PayData>
            <Invoice>
              <NationalTaxIncl>false</NationalTaxIncl>
              <TotalAmt>10.00</TotalAmt>
              <BillTo>
                <Address>
                  <Street>1234 Fake Street</Street>
                  <Zip>90210</Zip>
                </Address>
              </BillTo>
            </Invoice>
            <Tender>
              <Card>
                <CardType>VISA</CardType>
                <CardNum>****************</CardNum>
                <ExpDate>******</ExpDate>
                <NameOnCard>John Smith</NameOnCard>
                <CVNum>***</CVNum>
              </Card>
            </Tender>
            <ButtonSource>MyCompanyBNCode</ButtonSource>
          </PayData>
        </Sale>
      </Transaction>
    </Transactions>
  </RequestData>
  <RequestAuth>
    <UserPass>
      <User>************</User>
      <Password>************</Password>
    </UserPass>
  </RequestAuth>
</XMLPayRequest>

Большое спасибо!

1 ответ

Решение

Вы должны поместить его в тег extdata, описанный в руководстве, начиная со страницы 16. То же самое относится и к любому другому параметру, который не имеет значения XML.

Общий пример из руководства:

<Sale>
     <PayData>
          (Invoice)
          (Tender)
     </PayData>
     (ExtData)*
</Sale>
Другие вопросы по тегам