안녕하십니까. m using paypal express checkout with the merchant sdk. I have implemented recurring payment using the integration manual, but the given example doesn
t 초기 지불 (사용자에게 즉시 청구). 지불을 만들기위한 내 코드는 다음과 같습니다페이팔 초기 지불을 통한 반복 지불
는 지불을 초기화 :
$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 시간 동안 계류 중이다. 나는 공개 토론과 etc.에서 읽었다 ... 이것은 샌드 박스 문제점이었다 그러나 unfortunetly 나는 지불이 deleyd이지 않을 것이라는 점을 확실 할 수 없다. 제 경우에는 즉시 지불을 받아야합니다. 내 새로운 질문은, 반복 지불 프로필을 만들 때 계정에 대한 응답 (성공 또는하지 않음)이며 프로필이 보류 중입니다. 나는 성공적으로 지불액을 계산하고 확실하게 돈을 벌 수 있는지 확인하십시오.
시간 내 주셔서 감사합니다. 감사합니다, 게오르기
귀하의 요청에 실제 초기 지불 매개 변수가 표시되지 않습니다. 그것이 당신이 의미하는 바가 틀림 없습니까, 아니면 그냥 들어야 할 첫 번째 지불에 대해 이야기하고 있습니까? 실제 "초기 지불"은 프로파일 작성시 청구 할 수있는 프로파일과는 별도로 1 회만 지불하게됩니다. 예를 들어, 케이블 가입에 대한 설정 수수료와 같습니다. API를 생성하는 코드와 반대되는 실제 API 요청 샘플을 게시하고 게시하십시오. –