[英](Updated) Laravel PUT Method Not Working
已更新-JSON文件将返回,但完全不会更改结算日期。
参考1 :有关更改开票日期的官方文档。
Reference2 :详细的示例代码:
<?php $request = new HttpRequest(); $request->setUrl('https://domain.chargify.com/subscriptions/$subscriptionId.json'); $request->setMethod(HTTP_METH_PUT); $request->setHeaders(array( 'authorization' => 'Basic YXBpa2V5Og==', 'content-type' => 'application/json' )); $request->setBody('{"subscription":{"next_billing_at":"2028-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",
["json" => [
[ "subscription" =>
[ "next_billing_at" => $nextBilling ]
]
]
]);
echo $res->getBody();
}
您建立的网址不正确。 $subscription
和.json
之间不应存在/
更改
$res = $client->put("https://$hostname/subscriptions/$subscriptionId/.json",
至
$res = $client->put("https://$hostname/subscriptions/$subscriptionId.json",
编辑
尝试更改逻辑以使Guzzle像这样打电话。
$headers = [
'authorization' => 'Basic ANIDIANDIAJIJCQ',
'content-type' => 'application/json'
];
$body = ["subscription" => ["next_billing_at" =>[ $nextBilling ]]];
$client = new Client();
$res = $client->put("https://$hostname/subscriptions/$subscriptionId.json",
[
'headers' => $headers,
'body' => json_encode($body)
]
);
echo $res->getBody()->getContents();
非常感谢大家对我的帮助。
我已经在这个问题上工作了2天了,这应该对我来说是正确的。 最终,是他们的API误导了我。
我们唯一需要做的就是改变
'body' => "{\"subscription\":{\"next_billing_at\":\"$nextBilling\"}}"
在里面添加了一些“ \\”。
谢谢大家的帮助,祝您有美好的一天!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.