Hello i m using paypal express checkout with the merchant sdk. I have implemented recurring payment using the integration manual, but the given example doesn
t внести первоначальный взнос (зарядите пользователя сразу). Моего кода для совершения платежа является:paypal единовременный платеж с первоначальной оплатой
Инициализации оплаты:
$cart = $this->cart->getCart();
$items = $cart['items'];
$itemTotal = 0;
foreach ($items as $k => $item) {
$product = $this->addItem($item);
$itemTotal += $product->Amount;
$this->paymentDetails->PaymentDetailsItem[$k] = $product;
}
$this->orderTotal->currencyID = 'USD';
$this->orderTotal->value = $this->cart->getCartAmount();
$this->paymentDetails->OrderTotal = $this->orderTotal;
$this->paymentDetails->PaymentAction = 'Sale';
$this->paymentDetails->InvoiceID = $invoice_id->{'$id'};
$setECReqDetails = new \PayPal\EBLBaseComponents\SetExpressCheckoutRequestDetailsType();
$setECReqDetails->PaymentDetails[0] = $this->paymentDetails;
$setECReqDetails->CancelURL = $this->cancelURL;
$setECReqDetails->ReturnURL = $this->returnURL;
$billingAgreementDetails = new \PayPal\EBLBaseComponents\BillingAgreementDetailsType('RecurringPayments');
$billingAgreementDetails->BillingAgreementDescription = 'recurringbilling';
$setECReqDetails->BillingAgreementDetails = array($billingAgreementDetails);
$setECReqType = new \PayPal\PayPalAPI\SetExpressCheckoutRequestType();
$setECReqType->Version = $this->version;
$setECReqType->SetExpressCheckoutRequestDetails = $setECReqDetails;
$setECReq = new \PayPal\PayPalAPI\SetExpressCheckoutReq();
$setECReq->SetExpressCheckoutRequest = $setECReqType;
return $this->paypalService->SetExpressCheckout($setECReq);
А потом на обратном URL я поставляюсь я создать повторяющийся платеж с этим кодом:
$profileDetails = new \PayPal\EBLBaseComponents\RecurringPaymentsProfileDetailsType();
$profileDetails->BillingStartDate = "2014-01-24T00:00:00:000Z";
$paymentBillingPeriod = new \PayPal\EBLBaseComponents\BillingPeriodDetailsType();
$paymentBillingPeriod->BillingFrequency = 10;
$paymentBillingPeriod->BillingPeriod = "Day";
$paymentBillingPeriod->Amount = new \PayPal\CoreComponentTypes\BasicAmountType("USD", "1.0");
$scheduleDetails = new \PayPal\EBLBaseComponents\ScheduleDetailsType();
$activationDetails = new \PayPal\EBLBaseComponents\ActivationDetailsType();
$activationDetails->InitialAmount = new \PayPal\CoreComponentTypes\BasicAmountType('USD', 49);
$activationDetails->FailedInitialAmountAction = 'ContinueOnFailure';
$scheduleDetails->Description = "recurringbilling";
$scheduleDetails->ActivationDetails = $activationDetails;
$scheduleDetails->PaymentPeriod = $paymentBillingPeriod;
$createRPProfileRequestDetails = new \PayPal\EBLBaseComponents\CreateRecurringPaymentsProfileRequestDetailsType();
$createRPProfileRequestDetails->Token = $token;
$createRPProfileRequestDetails->ScheduleDetails = $scheduleDetails;
$createRPProfileRequestDetails->RecurringPaymentsProfileDetails = $profileDetails;
$createRPProfileRequest = new \PayPal\PayPalAPI\CreateRecurringPaymentsProfileRequestType();
$createRPProfileRequest->CreateRecurringPaymentsProfileRequestDetails = $createRPProfileRequestDetails;
$createRPProfileReq = new \PayPal\PayPalAPI\CreateRecurringPaymentsProfileReq();
$createRPProfileReq->CreateRecurringPaymentsProfileRequest = $createRPProfileRequest;
return $this->paypalService->CreateRecurringPaymentsProfile($createRPProfileReq);
}
В моем я вижу, что повторяющийся платеж создается, но первоначального платежа нет. Мой вопрос: как я могу настроить этот повторяющийся платеж, чтобы был произведен первоначальный платеж?
Надеюсь, что я хорошо объяснил свою проблему. Если вам нужен дополнительный комментарий.
EIDT: Мой вопрос заключается в том, как создать повторяющийся платеж с первоначальной оплатой. и я отредактировал свой фрагмент кода. После некоторого чтения я увидел, что я пропустил настройку с настройкой «ActivationDetailsType». Я настроил его, и он отлично справляется с одной проблемой ... Профиль оплаты находится на рассмотрении в течение 4-5 часов, а затем проходит. Я читал в форумах и т. Д. ... что это была проблема с песочницей, но, к сожалению, я не могу быть уверен, что платеж не будет отменен. В моем случае мне нужно, чтобы платеж был одобрен сразу. Мой новый вопрос заключается в том, что при создании повторяющегося профиля платежей и ответа для учетной записи все в порядке (успешно, а что нет), и профиль ожидает ответа. Я могу считать платеж успешным и уверен, что я получу деньги точно
Спасибо, что нашли время. С уважением, Georgi
Я не вижу фактических параметров первоначального платежа в вашем запросе. Вы уверены, что это то, что вы имеете в виду, или вы просто говорите о первом платеже в профиле, который должен пройти? Фактический «первоначальный платеж» будет разовым платежом отдельно от профиля, который вы можете взимать при создании профиля. Например, плата за установку для кабельной подписки. Пожалуйста, подтвердите это и опубликуйте образец вашего фактического запроса API, а не код, который его генерирует. –