【发布时间】:2015-12-30 10:00:57
【问题描述】:
我真的对BillingFrequency、BillingPeriod、TotalBillingCycles 感到困惑,我想要实现的是设置 12 个月的每月计费。
$paymentBillingPeriod = new BillingPeriodDetailsType();
$paymentBillingPeriod->BillingFrequency = "1"; //can not be more than a year
$paymentBillingPeriod->BillingPeriod = "Year";
$paymentBillingPeriod->TotalBillingCycles ="12";
$paymentBillingPeriod->Amount = new BasicAmountType($currencyCode, 18); // GET Amount from Session
$paymentBillingPeriod->ShippingAmount = new BasicAmountType($currencyCode, "0");
$paymentBillingPeriod->TaxAmount = new BasicAmountType($currencyCode, "0");
这是来自 API 的错误响应
计费周期必须是日、周、半月或年计费周期之一
频率必须 > 0 且小于或等于一年
我做错了什么?
来源
$currencyCode = "USD";
$billingStartDate = date("Y-m-d\TH:i:s\Z");
$subscriberName = "Name";// Session var
$token = "" ; //
$amount = "10.00"
$RPProfileDetails = new RecurringPaymentsProfileDetailsType();
$RPProfileDetails->SubscriberName = $subscriberName;
$RPProfileDetails->BillingStartDate = $billingStartDate;
$activationDetails = new ActivationDetailsType();
$paymentBillingPeriod = new BillingPeriodDetailsType();
$paymentBillingPeriod->BillingFrequency = '12';
$paymentBillingPeriod->BillingPeriod = 'Month';
$paymentBillingPeriod->Amount = new BasicAmountType($currencyCode, $amount);
$paymentBillingPeriod->ShippingAmount = new BasicAmountType($currencyCode, 0.0);
$paymentBillingPeriod->TaxAmount = new BasicAmountType($currencyCode, 0.0);
$scheduleDetails = new ScheduleDetailsType();
$scheduleDetails->Description = "This is recurring payment";
$scheduleDetails->ActivationDetails = $activationDetails;
$createRPProfileRequestDetail = new CreateRecurringPaymentsProfileRequestDetailsType();
$createRPProfileRequestDetail->Token = $token;
$createRPProfileRequestDetail->ScheduleDetails = $scheduleDetails;
$createRPProfileRequestDetail->RecurringPaymentsProfileDetails = $RPProfileDetails;
$createRPProfileRequest = new CreateRecurringPaymentsProfileRequestType();
$createRPProfileRequest->CreateRecurringPaymentsProfileRequestDetails = $createRPProfileRequestDetail;
$createRPProfileReq = new CreateRecurringPaymentsProfileReq();
$createRPProfileReq->CreateRecurringPaymentsProfileRequest = $createRPProfileRequest;
$paypalService = new PayPalAPIInterfaceServiceService(Configuration::getAcctAndConfig());
try {
/* wrap API method calls on the service object with a try catch */
$createRPProfileResponse = $paypalService->CreateRecurringPaymentsProfile($createRPProfileReq);
} catch (Exception $ex) {
include_once("Error.php");
exit;
}
回复
Ack :
Failure
ProfileID :
PayPal\PayPalAPI\CreateRecurringPaymentsProfileResponseType Object
(
[CreateRecurringPaymentsProfileResponseDetails] => PayPal\EBLBaseComponents\CreateRecurringPaymentsProfileResponseDetailsType Object
(
[ProfileID] =>
[ProfileStatus] =>
[TransactionID] =>
[DCCProcessorResponse] =>
[DCCReturnCode] =>
)
[Timestamp] => 2015-10-07T09:14:22Z
[Ack] => Failure
[CorrelationID] => 1d7177ca754
[Errors] => Array
(
[0] => PayPal\EBLBaseComponents\ErrorType Object
(
[ShortMessage] => Invalid billing period.
[LongMessage] => Billing period must be one of Day, Week, SemiMonth, or Year
[ErrorCode] => 11518
[SeverityCode] => Error
[ErrorParameters] =>
)
[1] => PayPal\EBLBaseComponents\ErrorType Object
(
[ShortMessage] => Invalid billing frequency
[LongMessage] => Billing frequency must be > 0 and be less than or equal to one year
[ErrorCode] => 11516
[SeverityCode] => Error
[ErrorParameters] =>
)
[2] => PayPal\EBLBaseComponents\ErrorType Object
(
[ShortMessage] => Invalid amount
[LongMessage] => Bill amount must be greater than 0
[ErrorCode] => 11519
[SeverityCode] => Error
[ErrorParameters] =>
)
)
[Version] => 106.0
[Build] => 000000
)
【问题讨论】:
标签: paypal