Я уже составил 3 отдельных тарифных плана и обновил их до ACTIVE государство. Нет никаких соглашений, связанных с этим еще.
Я хотел иметь возможность редактировать детали плана после того, как они были переведены в АКТИВНОЕ состояние.
Поэтому, когда я пытался обновить план, он выдавал ошибку:
{"name":"BUSINESS_VALIDATION_ERROR","details":[{"field":"validation_error","issue":"Requested state change is invalid."}]
Итак, я попытался преобразовать государство в СОЗДАНО снова, чтобы я мог редактировать детали. Вот фрагмент кода, который я пробовал:
try {
$statePatch = new PayPal\Api\Patch();
$statePatch->setOp('replace')
->setPath('/')
->setValue(array('state' => 'CREATED'));
$statePatchRequest = new \PayPal\Api\PatchRequest();
$statePatchRequest->addPatch($statePatch);
$plan->update($statePatchRequest, $apiContext);
$updatedPlan = \PayPal\Api\Plan::get($plan->getId(), $apiContext);
} catch (Exception $ex) {
var_dump($ex);
exit(1);
}
Но это все еще не сработало. API снова дал похожую ошибку.
private 'url' => string 'https://api.sandbox.paypal.com/v1/payments/billing-plans/P-6DK979342A210870GWHVJFGY' (length=83)
private 'data' => string '{"name":"BUSINESS_VALIDATION_ERROR","details":[{"field":"validation_error","issue":"Requested state change is invalid."}],"message":"Validation Error.","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#BUSINESS_VALIDATION_ERROR","debug_id":"5cf8ac1da4fa8"}' (length=283)
protected 'message' => string 'Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/billing-plans/P-6DK979342A210870GWHVJFGY.' (length=126)
private 'string' (Exception) => string '' (length=0)
protected 'code' => int 400
protected 'file' => string '/var/www/public/application/third_party/PayPal-PHP-SDK/paypal/rest-api-sdk-php/lib/PayPal/Core/PayPalHttpConnection.php' (length=119)
protected 'line' => int 177
Я не могу найти ссылки где-либо о том, как это сделать. Это вообще возможно?
Вы можете следовать образцы предусмотрено в PayPal REST API SDK непосредственно.
http://paypal.github.io/PayPal-PHP-SDK/sample/doc/billing/UpdatePlan.html
Судя по всему, нужно, чтобы «состояние» было ACTIVE, и не СОЗДАНО
Других решений пока нет …