Paypal Php Sdk – NotifyUrl is not a fully qualified URL Error

  • A+
Category:Languages

I have this code

$product_info = array(); if(isset($cms['site']['url_data']['product_id'])){       $product_info = $cms['class']['product']->get($cms['site']['url_data']['product_id']); } if(!isset($product_info['id'])){     /*     echo 'No product info.';     exit();     */     header_url(SITE_URL.'?subpage=user_subscription#xl_xr_page_my%20account'); }  $fee = $product_info['yearly_price_end'] / 100 * $product_info['fee']; $yearly_price_end = $product_info['yearly_price_end'] + $fee;  $fee = ($product_info['setup_price_end'] / 100) * $product_info['fee']; $setup_price_end = $product_info['setup_price_end'] + $fee; if(isset($_SESSION['discountcode_amount'])){         $setup_price_end = $setup_price_end - $_SESSION['discountcode_amount'];     unset($_SESSION['discountcode_amount']); }   $error = false; $plan_id = ''; $approvalUrl = ''; $ReturnUrl = SITE_URL.'payment/?payment_type=paypal&payment_page=process_agreement'; $CancelUrl = SITE_URL.'payment/?payment_type=paypal&payment_page=cancel_agreement';  $now = $cms['date']; $now->modify('+5 minutes');   $apiContext = new /PayPal/Rest/ApiContext(     new /PayPal/Auth/OAuthTokenCredential(         $cms['options']['plugin_paypal_clientid'],     // ClientID         $cms['options']['plugin_paypal_clientsecret']  // ClientSecret     ) );  use PayPal/Api/ChargeModel; use PayPal/Api/Currency; use PayPal/Api/MerchantPreferences; use PayPal/Api/PaymentDefinition; use PayPal/Api/Plan; use PayPal/Api/Patch; use PayPal/Api/PatchRequest; use PayPal/Common/PayPalModel; use PayPal/Api/Agreement; use PayPal/Api/Payer; use PayPal/Api/ShippingAddress;  // Create a new instance of Plan object $plan = new Plan(); // # Basic Information // Fill up the basic information that is required for the plan $plan->setName($product_info['name'])     ->setDescription($product_info['desc_text'])     ->setType('fixed'); // # Payment definitions for this billing plan. $paymentDefinition = new PaymentDefinition(); // The possible values for such setters are mentioned in the setter method documentation. // Just open the class file. e.g. lib/PayPal/Api/PaymentDefinition.php and look for setFrequency method. // You should be able to see the acceptable values in the comments. $setFrequency = 'Year'; //$setFrequency = 'Day'; $paymentDefinition->setName('Regular Payments')     ->setType('REGULAR')     ->setFrequency($setFrequency)     ->setFrequencyInterval("1")     ->setCycles("999")     ->setAmount(new Currency(array('value' => $yearly_price_end, 'currency' => $cms['session']['client']['currency']['iso_code']))); // Charge Models $chargeModel = new ChargeModel(); $chargeModel->setType('SHIPPING')     ->setAmount(new Currency(array('value' => 0, 'currency' => $cms['session']['client']['currency']['iso_code']))); $paymentDefinition->setChargeModels(array($chargeModel)); $merchantPreferences = new MerchantPreferences();  // ReturnURL and CancelURL are not required and used when creating billing agreement with payment_method as "credit_card". // However, it is generally a good idea to set these values, in case you plan to create billing agreements which accepts "paypal" as payment_method. // This will keep your plan compatible with both the possible scenarios on how it is being used in agreement. $merchantPreferences->setReturnUrl($ReturnUrl)     ->setCancelUrl($CancelUrl)     ->setAutoBillAmount("yes")     ->setInitialFailAmountAction("CONTINUE")     ->setMaxFailAttempts("0")     ->setSetupFee(new Currency(array('value' => $setup_price_end, 'currency' => $cms['session']['client']['currency']['iso_code']))); $plan->setPaymentDefinitions(array($paymentDefinition)); $plan->setMerchantPreferences($merchantPreferences);  // ### Create Plan try {     $output = $plan->create($apiContext); } catch (Exception $ex){     die($ex); }  echo $output->getId().'<br />'; echo $output.'<br />'; 

Been working with paypal php sdk for some days now and my code stop working. So i went back to basic and i am still getting the same damn error.

I am trying to create a plan for subscription but getting the following error: "NotifyUrl is not a fully qualified URL"

I have no idea how to fix this as i dont use NotfifyUrl in my code?

Could be really nice if anyone had an idea how to fix this problem :)

Thanks

 


PayPal did a update to their API last night which has caused problem within their SDK. They are sending back null values in their responses.

I MUST stress the error is not on sending the request to PayPal, but on processing their response.

BUG Report : https://github.com/paypal/PayPal-PHP-SDK/issues/1151

Pull Request : https://github.com/paypal/PayPal-PHP-SDK/pull/1152

Hope this helps, but their current SDK is throwing exceptions.

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: