У меня уже есть клиент, у которого есть права доступа. net Профилировано. Я хотел сделать подписку на основе customerProfileId
, предоставленной авторизацией. net.
Я использую эти инструкции с их веб-сайта разработчика
https://developer.authorize.net/api/reference/index.html#recurring-billing-create-a-subscription-from-customer-profile
после запуска я получаю это сообщение об ошибке.
Response : E00121 No default payment/shipping profile found.
Laravel PHP Код
public function createSubscription($request, $customerProfileId, $customerPaymentProfileId, $customerAddressId = null)
{
/* Create a merchantAuthenticationType object with authentication details
retrieved from the constants file */
$merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
$merchantAuthentication->setName(config('services.authorize.login'));
$merchantAuthentication->setTransactionKey(config('services.authorize.key'));
// Set the transaction's refId
$refId = 'ref' . time();
// Subscription Type Info
$subscription = new AnetAPI\ARBSubscriptionType();
$subscription->setName("USLOCAL Subscription");
$interval = new AnetAPI\PaymentScheduleType\IntervalAType();
$interval->setLength("1");
$interval->setUnit("months");
$paymentSchedule = new AnetAPI\PaymentScheduleType();
$paymentSchedule->setInterval($interval);
$paymentSchedule->setStartDate(new \DateTime($request->due_date));
$paymentSchedule->setTotalOccurrences("999");
/* $paymentSchedule->setTrialOccurrences("1"); */
$subscription->setPaymentSchedule($paymentSchedule);
$subscription->setAmount($this->amount);
/* $subscription->setTrialAmount("0.00"); */
$profile = new AnetAPI\CustomerProfileIdType();
$profile->setCustomerProfileId($customerProfileId);
$profile->setCustomerPaymentProfileId($customerPaymentProfileId);
if ($customerAddressId) {
$profile->setCustomerAddressId($customerAddressId);
}
$subscription->setProfile($profile);
$request = new AnetAPI\ARBCreateSubscriptionRequest();
$request->setmerchantAuthentication($merchantAuthentication);
$request->setRefId($refId);
$request->setSubscription($subscription);
$controller = new AnetController\ARBCreateSubscriptionController($request);
$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
if (($response != null) && ($response->getMessages()->getResultCode() == "Ok")) {
return [
'success' => true,
'message' => "SUCCESS: Subscription ID : " . $response->getSubscriptionId() . "\n",
];
} else {
$errorMessages = $response->getMessages()->getMessage();
return [
'success' => false,
'message' => "Response : " . $errorMessages[0]->getCode() . " " . $errorMessages[0]->getText() . "\n",
];
}
return [
'success' => false,
'message' => $response,
];
}
Авторизация. net: учетная запись клиента песочницы.
У кого-нибудь есть идея, почему я получаю это сообщение об ошибке?
Обратите внимание, что это поставщик услуг, и адрес доставки не требуется.