PayPal CreateRecurringPaymentsProfile Недопустимый токен

Я пытаюсь создать регулярный платеж с использованием SOAP API, я сделал следующие шаги, как указано в руководстве PayPal API:

1- Вызвать API "установить экспресс-выписку". 2- Получите токен и перенаправьте покупателя на сайт PayPal. 3- После того, как пользователь закончит, он будет перенаправлен на мою страницу ответа. 4- Вызвать API экспресс-оплаты. 5- Вызов API «CreateRecurringPaymentsProfile».

структура SOAP моего вызова:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:ebay:api:PayPalAPI" xmlns:urn1="urn:ebay:apis:eBLBaseComponents">
  <soapenv:Header>
    <urn:RequesterCredentials>
      <urn1:Credentials>
        <urn1:Username>'+un+'</urn1:Username>
        <urn1:Password>'+pw+'</urn1:Password>
        <urn1:Signature>'+sig+'</urn1:Signature>
      </urn1:Credentials>
    </urn:RequesterCredentials>
  </soapenv:Header>
  <soapenv:Body>
    <urn:CreateRecurringPaymentsProfileReq>
      <urn:CreateRecurringPaymentsProfileRequest>
        <urn1:Version>'+version+'</urn1:Version>
        <urn1:CreateRecurringPaymentsProfileRequestDetails>
          <urn1:Token>'+token+'</urn1:Token>
          <urn1:RecurringPaymentsProfileDetails>
            <urn1:SubscriberName>'+FirstName+' '+LastName+'</urn1:SubscriberName>
            <urn1:BillingStartDate>'+strCurrentDate+'</urn1:BillingStartDate>
          </urn1:RecurringPaymentsProfileDetails>
          <urn1:ScheduleDetails>
            <urn1:Description>'+BillingAgreementDescription+'</urn1:Description>
            <urn1:PaymentPeriod>
              <urn1:BillingPeriod>'+billingPeriod+'</urn1:BillingPeriod>
              <urn1:BillingFrequency>'+billingFrequency+'</urn1:BillingFrequency>
              <urn1:Amount currencyID="'+UsedCurrency+'">'+amount+'</urn1:Amount>
            </urn1:PaymentPeriod>
          </urn1:ScheduleDetails>
        </urn1:CreateRecurringPaymentsProfileRequestDetails>
      </urn:CreateRecurringPaymentsProfileRequest>
    </urn:CreateRecurringPaymentsProfileReq>
  </soapenv:Body>
</soapenv:Envelope>


person nkarmi    schedule 04.11.2014    source источник


Ответы (2)


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

Вот старый пример набора вызовов, который я собрал, чтобы ответить людям на этот вопрос. Он использует NVP вместо SOAP, но вы можете видеть, что он включает параметры BILLINGTYPE и BILLINGAGREEMENTDESCRIPTION в запросе SEC. Убедитесь, что вы включили их в свой запрос SEC соответствующим образом.

person Drew Angell    schedule 04.11.2014

Это проблема со структурой тела SOAP, она должна быть такой:

  string doExpressCheckout = '';
    doExpressCheckout += '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:ebay:api:PayPalAPI" xmlns:urn1="urn:ebay:apis:eBLBaseComponents">';
    doExpressCheckout += '<soapenv:Header>';
    doExpressCheckout += '<urn:RequesterCredentials>';
    doExpressCheckout += '<urn1:Credentials>';
    doExpressCheckout += '<urn1:Username>'+un+'</urn1:Username>';
    doExpressCheckout += '<urn1:Password>'+pw+'</urn1:Password>';
    doExpressCheckout += '<urn1:Signature>'+sig+'</urn1:Signature>';
    doExpressCheckout += '</urn1:Credentials>';
    doExpressCheckout += '</urn:RequesterCredentials>';
    doExpressCheckout += '</soapenv:Header>';
    doExpressCheckout += '<soapenv:Body>';
    doExpressCheckout += '<urn:DoExpressCheckoutPaymentReq>';
    doExpressCheckout += '<urn:DoExpressCheckoutPaymentRequest>';
    doExpressCheckout += '<urn1:Version>'+version+'</urn1:Version>';
    doExpressCheckout += '<urn1:DoExpressCheckoutPaymentRequestDetails>';
    doExpressCheckout += '<urn1:Token>'+token+'</urn1:Token>';
    doExpressCheckout += '<urn1:PayerID>'+payerID+'</urn1:PayerID>';
    doExpressCheckout += '<urn1:PaymentDetails>';
    doExpressCheckout += '<urn1:OrderTotal currencyID="'+UsedCurrency+'">'+amount+'</urn1:OrderTotal>';
    doExpressCheckout += '</urn1:PaymentDetails>';
    doExpressCheckout += '</urn1:DoExpressCheckoutPaymentRequestDetails>';
    doExpressCheckout += '</urn:DoExpressCheckoutPaymentRequest>';
    doExpressCheckout += '</urn:DoExpressCheckoutPaymentReq>';
    doExpressCheckout += '</soapenv:Body>';
    doExpressCheckout += '</soapenv:Envelope>';
person nkarmi    schedule 09.12.2014