что означает значение PAYMENTREQUEST_n_AMT в SetExpressCheckout и DoExpressCheckoutPayment? - PullRequest
2 голосов
/ 15 ноября 2011

Я использую ExpressCheckout и тестирую Paypal в песочнице.Я заметил, что если я установлю более высокую сумму PAYMENTREQUEST_n_AMT в DoExpressCheckoutPayment(), чем в SetExpressCheckout() (например, 30 долларов США в SetExpressChecout(), 50 долларов США в DoExpressCheckoutPayment()), Paypal переведет 50 долларов США на мой бизнес-счет в песочнице.из моего личного аккаунта песочницы.

Это потому, что это сервер песочницы или что-то, что я должен знать?

Я создаю веб-сайт, который требуется для получения аванса от покупателя и сбора того, чтоостатки чистой цены несколько дней спустя.Если это функция Paypal Express Checkout, я установлю сумму аванса в SetExpressCheckout(), а общую цену нетто в DoExpressCheckoutPayment().После этого покупатель увидит только сумму аванса в Paypal, чтобы избежать путаницы.Если бы мы сказали, что взимаем только аванс, но в Paypal покажем общую сумму чистой цены, это может вызвать путаницу.

В моем тесте это работает в песочнице, но Paypal ответит SUCCESSPAGEREDIRECTREQUESTED=true в этой ситуации,В документации Paypal поясняется «Флаг, указывающий, хотите ли вы перенаправить покупателя для регистрации в PayPal после завершения транзакции».Что это значит?Не могли бы вы уточнить это для меня?

1 Ответ

2 голосов
/ 16 ноября 2011

Это не способ сделать это, так как DoExpressCheckoutPayment необходимо завершить в течение трех часов после вызова SetExpressCheckout (и сгенерированного TOKEN). Вам нужно использовать PayPal Authorization & Capture (см. Также здесь ).

  1. Вызов SetExpressCheckout и DoExpressCheckoutPayment с общей суммой сумма, которую вы хотите взимать и убедитесь, что вы передаете PAYMENTREQUEST_0_PAYMENTACTION = Авторизация в обоих.
  2. Вызовите DoCapture и выполните частичный захват транзакции. Запустив частичный захват, вы оставляете остаток открытым для последующего захвата (COMPLETETYPE=NotComplete)
  3. Как только вы будете готовы захватить остаток, снова вызовите DoCapture и установите COMPLETETYPE=Complete. После того как захват завершен, вы не можете получить больше средств с этого конкретного идентификатора транзакции, независимо от того, захватили вы полную сумму или нет.
...