更新 - 我試圖使用API文檔來改變使用PUT方法在Laravel中的Http和Guzzle中的開票日期,但是,JSON文件將返回,但它不會更改在所有。Laravel PUT方法不起作用
- 參考文獻1:關於changing the billing date的官方文檔。
定2:詳細的示例代碼(約壞格式不好意思):
<?php $request = new HttpRequest(); $request->setUrl('https://subdomain.chargify.com/subscriptions/subscriptionId.json'); $request->setMethod(HTTP_METH_PUT); $request->setHeaders(array('content-type' => 'application/json')); $request->setBody('{"subscription":{"next_billing_at":"2018-12-15"}}'); try { $response = $request->send(); echo $response->getBody(); } catch (HttpException $ex) { echo $ex; }
我的詳細代碼:
public function changeYearlySubscriptionBillingDate(Request $request)
{
$user = $request->user();
$subscriptionId = $user->subscription->subscription_id;
$nextBilling = Carbon::now()->addYear();
$hostname = env('CHARGIFY_HOSTNAME');
$headers = [
'authorization' => 'Basic ANIDIANDIAJIJCQ',
'content-type' => 'application/json'
];
$body = ["subscription" => ["next_billing_at" =>[ $nextBilling ]]];
$config = [
'headers' => $headers,
'form_param' => $body
];
$client = new Client($config);
$res = $client->put("https://$hostname/subscriptions/$subscriptionId.json");
echo $res->getBody();
}
''next_billing_at「=> [$ nextBilling]'中的'[$ nextBilling]'應該是一個數組嗎?它看起來並不像這樣:'「next_billing_at」:「2018-12-15」' – Hollings
是的,它原來不是一個數組,它是:''{「subscription」:{「next_billing_at」: 「2018-12-15」}}'',我也嘗試過這種方式,但仍然無法工作到目前爲止。 – zhiyu
好的。我注意到的另外一件事情,你可能必須用'$ nextBilling-> toDateString()'來格式化Carbon日期。這將把它從碳日期對象轉換爲YYYY-MM-DD字符串格式 – Hollings