#php
Вопрос:
Мы используем MTN PHP-SDK из приведенного ниже URL
https://github.com/digitalmaterial/dep.api.auth.php
Код:
$path = '/subscription/' . $subscription_id;
$depClient = new MTNDEPDEPClient($accessKey, $accessSecret, $apiKey, $baseUrl);
$requestBody = [];
$response = $depClient->createRequest(MTNDEPDEPClient::DELETE, $path, null, $requestBody)->send();
$responseArray = json_decode((string) $response->getBody(), true);
Ответ:
Client error: `DELETE https://api.dep.mtn.co.za/subscription/` resulted in a `404 Not Found` response:
{"message":"No method found matching route subscription/ for http method DELETE."}
Мы не можем найти какой-либо PHP-код отмены подписки MTN-DEP. Пожалуйста, помогите нам и дайте нам знать, как мы можем удалить подписку с MTN end?
Комментарии:
1. Над какой документацией по API вы работаете? И то и другое developers.mtn.com/products/mtn-subscription-api-v1 и аналог v2 предполагает, что идентификатор клиента также должен быть указан в пути. (Если это то, чего вы пытаетесь достичь, откажитесь от подписки на конкретного клиента?)
Ответ №1:
я заметил 2 вещи :
1 — в упомянутой документации запрос отправлен следующим образом
$depClient->createRequest('POST' '/subscription');
поэтому я думаю , что вам нужно использовать это, пожалуйста, постарайтесь придерживаться всех шагов
$depClient->createRequest('DELETE',$path); // Returns DEPClient object for chaining, see below
$depClient->getRequest(); // Will return the GuzzleHttpPsr7Request object with signed auth details for DEP API requests
$response = $depClient->send();
$statusCode = $response->getStatusCode(); // returns the http status code
$rawResponse = (string) $response->getBody(); // body, you will need to cast to string or echo to get the body data.
$responseArray = json_decode($rawResponse, true); // return json decode array.
2 — убедитесь, что параметр $subscription_id
установлен и имеет значение, прежде чем отправлять запрос.
Ответ №2:
Согласно документации, вам необходимо указать идентификатор клиента и идентификатор подписки.
Вы должны отправить запрос на удаление в конечную /customers/{id}/subscriptions/{subscriptionId}
точку .
Возможно, путь, указанный в вашем коде, должен выглядеть следующим образом:
$path = '/customers/' . $customer_id . '/subscriptions/' . $subscription_id;
$depClient = new MTNDEPDEPClient($accessKey, $accessSecret, $apiKey, $baseUrl);
$requestBody = [];
$response = $depClient->createRequest(MTNDEPDEPClient::DELETE, $path, null, $requestBody)->send();
$responseArray = json_decode((string) $response->getBody(), true);
Комментарии:
1. У нас нет никакого удостоверения личности клиента. Где мы это возьмем?
2. Привет, Дэн, В соответствии с вашей инструкцией я добавил идентификатор клиента и получил ошибку ниже.
Client error: DELETE https://api.dep.mtn.co.za/customers/123456789/subscription/1234567890 resulted in a 404 Not Found response: {"message":"No method found matching route customers/123456789/subscription/1234567890 for http method DELETE."}