Как создать купон, используя API Chargify — PHP / Laravel

Это мой ChargifyCoupon.php

public function create($product_family_id = null, $details = []) {
$details = array_replace_recursive([
"name" => "15% off",
"code" => "15OFF",
"description" => "15% off for life",
"percentage" => "15",
"allow_negative_balance" => "false",
"recurring" => "false",
"end_date" => "2016-12-31T23:59:59-04:00",
"product_family_id" => $product_family_id
], $details);
$returnData = $this->connector->createCoupon($details, 'JSON');
var_dump($returnData);
die;

}

Это мой ChargifyConnector.php

function createCoupon($product_family_id, $coupon_details = [], $format = 'XML') {
$extension = strtoupper($format) == 'XML' ? '.xml' : '.json';
$base_url = "/product_families/{$product_family_id}/coupons" . $extension;
$data = json_encode([
"coupon" => $coupon_details
]);
$coupon = $this->sendRequest($base_url, $format, 'POST', $data);
if ($coupon->code == 200) {
return $coupon->response;
} elseif ($coupon->code == 404 || $coupon->code == 500) {
var_dump($coupon);
die;
throw new \Exception($coupon->code, "Coupon was not created.");
}

}

Когда я пытаюсь увидеть результат, я получаю «преобразование массива в строку»

1

Решение

Извините за поздний ответ..

После стольких исследований по бесплатному купону,

просто удалите / product_families / {$ product_family_id}.

нет необходимости отправлять данные купона с product_families / {$ product_family_id}.

Для более подробной информации смотрите ВОТ.

Обновленный код:

function createCoupon($product_family_id, $coupon_details = [], $format = 'XML') {
$extension = strtoupper($format) == 'XML' ? '.xml' : '.json';
// $base_url = "/product_families/{$product_family_id}/coupons" . $extension;
$base_url = "/coupons" . $extension;
$data = json_encode([
"coupon" => $coupon_details
]);
$coupon = $this->sendRequest($base_url, $format, 'POST', $data);
if ($coupon->code == 200) {
return $coupon->response;
} elseif ($coupon->code == 404 || $coupon->code == 500) {
// var_dump($coupon);
// die;
throw new \Exception($coupon->code, "Coupon was not created.");
}
}
0

Другие решения

Других решений пока нет …