Получение уникального идентификатора транзакции, видимого клиентом, из Express Checkout

Я использую PayPal Express Checkout в учетной записи песочницы и пытаюсь связать уникальный идентификатор транзакции на сайте PayPal «клиента» с завершенной транзакцией через Express Checkout.

Мой DoExpressCheckoutPayment вернулся:

TOKEN=EC%2d2KG36160AM8868619&
SUCCESSPAGEREDIRECTREQUESTED=false&
TIMESTAMP=2015%2d01%2d29T09%3a45%3a09Z&
CORRELATIONID=44060412ed341&
ACK=Success&
VERSION=93&BUILD=15009693&
INSURANCEOPTIONSELECTED=false&
SHIPPINGOPTIONISDEFAULT=false&
PAYMENTINFO_0_TRANSACTIONID=011446947E558235S&
PAYMENTINFO_0_TRANSACTIONTYPE=expresscheckout&
PAYMENTINFO_0_PAYMENTTYPE=instant&
PAYMENTINFO_0_ORDERTIME=2015%2d01%2d29T09%3a45%3a08Z&
PAYMENTINFO_0_AMT=7%2e98&
PAYMENTINFO_0_FEEAMT=0%2e47&
PAYMENTINFO_0_TAXAMT=0%2e00&
PAYMENTINFO_0_CURRENCYCODE=GBP&
PAYMENTINFO_0_PAYMENTSTATUS=Completed&
PAYMENTINFO_0_PENDINGREASON=None&
PAYMENTINFO_0_REASONCODE=None&
PAYMENTINFO_0_PROTECTIONELIGIBILITY=Ineligible&
PAYMENTINFO_0_PROTECTIONELIGIBILITYTYPE=None&
PAYMENTINFO_0_SECUREMERCHANTACCOUNTID=W9SM36U76AXSS&
PAYMENTINFO_0_ERRORCODE=0&
PAYMENTINFO_0_ACK=Success

Затем мой GetExpressCheckoutDetails вернул:

TOKEN=EC%2d2KG36160AM8868619&
BILLINGAGREEMENTACCEPTEDSTATUS=0&
CHECKOUTSTATUS=PaymentActionCompleted&
TIMESTAMP=2015%2d01%2d29T09%3a45%3a33Z&
CORRELATIONID=80e00a0067bea&
ACK=Success&
VERSION=93&
BUILD=15009693&
EMAIL=test1%40sud%2eco2euk&
PAYERID=H54VEN293PLFL&
PAYERSTATUS=verified&
FIRSTNAME=Test&
LASTNAME=User&
COUNTRYCODE=GB&
CURRENCYCODE=GBP&
AMT=7%2e98&
SHIPPINGAMT=0%2e00&
HANDLINGAMT=0%2e00&
TAXAMT=0%2e00&
INSURANCEAMT=0%2e00&
SHIPDISCAMT=0%2e00&
PAYMENTREQUEST_0_CURRENCYCODE=GBP&
PAYMENTREQUEST_0_AMT=7%2e98&
PAYMENTREQUEST_0_SHIPPINGAMT=0%2e00&
PAYMENTREQUEST_0_HANDLINGAMT=0%2e00&
PAYMENTREQUEST_0_TAXAMT=0%2e00&
PAYMENTREQUEST_0_INSURANCEAMT=0%2e00&
PAYMENTREQUEST_0_SHIPDISCAMT=0%2e00&
PAYMENTREQUEST_0_TRANSACTIONID=011446947E558235S&
PAYMENTREQUEST_0_INSURANCEOPTIONOFFERED=false&
PAYMENTREQUESTINFO_0_TRANSACTIONID=011446947E558235S&
PAYMENTREQUESTINFO_0_ERRORCODE=0

Но на сайте клиента сказано:

Платеж через PayPal Express Checkout отправлен (уникальный идентификатор транзакции 7PK53077PJ222701T)


person Sam Jones    schedule 29.01.2015    source источник
comment
Да ... это странность PayPal: каждая сторона транзакции получает свой собственный идентификатор транзакции. Я не знаю, каким образом одна сторона может получить идентификатор транзакции другой стороны. К счастью, большинство, если не все функции поиска PayPal принимают любой идентификатор. Например, если клиент сообщает вам свой идентификатор транзакции, участником которой вы являетесь, вы можете найти этот идентификатор в своей учетной записи PP или в API TransactionDetails. Но если вы хотите поделиться чем-то, что вы и клиент можете обсудить для идентификации транзакции, вам может потребоваться добавить идентификатор счета при выполнении транзакции.   -  person geewiz    schedule 29.01.2015


Ответы (1)


Ох ... (болезненные) воспоминания :) Эта вышеупомянутая "странность" существует и в другом месте - например, транзакции eBay

IINM, вам нужно будет отправить свой собственный «пользовательский идентификатор» - упомянутый выше Invoice Id (который отображается для конечного пользователя), чтобы на обоих концах была какая-то визуальная ссылка на транзакцию.

В REST API (не уверен в Classic, не пробовал), если вы отправляете Order, номер заказа (наконец) используется на обоих концах (одинаково для обоих). Хотя не мешало бы по-прежнему отправлять свой собственный «custom Id» / «Invoice Id».

Пользовательский интерфейс Paypal покупателя / клиента: Buyer Visual ref

Пользовательский интерфейс продавца / продавца Paypal: Продавец Visual refHth ...

person EdSF    schedule 29.01.2015
comment
Подтверждено, установка свойства INVOICE при вызове метода SetExpressCheckout сохраняет значение счета с помощью PayPal, значение счета затем возвращается, когда вы получаете IPN - person Sam Jones; 05.02.2015