2016-09-09 3 views
0

Я пытался выполнить план подписки. Я попал в блокпост в форме соглашения о выставлении счетов. Я продолжаю получать следующую ошибку при попытке создать соглашение.Соглашение о выставлении счетов Paypal Неверный идентификатор плана PHP

{"name":"VALIDATION_ERROR","details":[{"field":"plan","issue":"Invalid Fields passed in plan. Pass only a valid plan-id."}],"message":"Invalid request. See details.","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#VALIDATION_ERROR"} 

Я не уверен, где проблема заключается, пытаясь заставить набор план Соглашения на выход идентификатор сами также вызывает ошибку JSON и не делает ничего продуктивного. Если вам нужна дополнительная информация, не стесняйтесь спрашивать.

$createdPlan = $startPlan->create($paypal); 

$patch = new Patch(); 
$value = new PayPalModel('{ 
    "state":"ACTIVE" 
}'); 
$patch->setOp('replace') 
    ->setPath('/') 
    ->setValue($value); 
$patchRequest = new PatchRequest(); 
$patchRequest->addPatch($patch); 
$createdPlan->update($patchRequest, $paypal); 
$plan = Plan::get($createdPlan->getId(), $paypal); 


$agreement = new Agreement(); 
$agreement->setName($product . ' Agreement') 
    ->setDescription('Recurring Payment') 
    ->setStartDate(date(c, time()+4)); 

$agreement->setPlan($plan); 

$payer = new Payer(); 
$payer->setPaymentMethod('paypal'); 

$agreement->setPayer($payer); 
$agreement->create($paypal); 

ответ

1

Я смог исправить это, создав новый объект плана и только установив id на фактический план.

$jsonplan = new Plan(); 
$jsonplan->setId($createdPlan->getId()); 
$agreement->setPlan($jsonplan); 
0

$createdPlan является переменной план, который вы должны пройти в $agreement классе

$agreement->setPlan($createdPlan);