Making billing plan active

kallestad
Contributor
Contributor

Hi,

 

I am new to the PayPal SDK and I am trying to create a billing plan and change its status to ACTIVE. I have tried some sample Java code from the SDK tutorial but I can't get that code to work. Status remains CREATED. The code I tried can be found below.

The output from running the code is

reated plan with id = P-1MT21723NA428154CRJGOTXQ
Plan state = CREATED
Plan state = CREATED

Best regards /Lasse

 

        // Build Plan object
        Plan plan = new Plan();
        plan.setName("T-Shirt of the Month Club Plan");
        plan.setDescription("Template creation.");
        plan.setType("fixed");

        // Payment_definitions
        PaymentDefinition paymentDefinition = new PaymentDefinition();
        paymentDefinition.setName("Regular Payments");
        paymentDefinition.setType("REGULAR");
        paymentDefinition.setFrequency("MONTH");
        paymentDefinition.setFrequencyInterval("1");
        paymentDefinition.setCycles("12");

        // Currency
        Currency currency = new Currency();
        currency.setCurrency("USD");
        currency.setValue("20");
        paymentDefinition.setAmount(currency);

        // Charge_models
        ChargeModels chargeModels = new com.paypal.api.payments.ChargeModels();
        chargeModels.setType("SHIPPING");
        chargeModels.setAmount(currency);
        List<ChargeModels> chargeModelsList = new ArrayList<>();
        chargeModelsList.add(chargeModels);
        paymentDefinition.setChargeModels(chargeModelsList);

        // Payment_definition
        List<PaymentDefinition> paymentDefinitionList = new ArrayList<>();
        paymentDefinitionList.add(paymentDefinition);
        plan.setPaymentDefinitions(paymentDefinitionList);

        // Merchant_preferences
        MerchantPreferences merchantPreferences = new MerchantPreferences();
        merchantPreferences.setSetupFee(currency);
        merchantPreferences.setCancelUrl("https://example.com/cancel");
        merchantPreferences.setReturnUrl("https://example.com/return");
        merchantPreferences.setMaxFailAttempts("0");
        merchantPreferences.setAutoBillAmount("YES");
        merchantPreferences.setInitialFailAmountAction("CONTINUE");
        plan.setMerchantPreferences(merchantPreferences);
        
        // Create payment
        Plan createdPlan = plan.create(apiContext);
        System.out.println("Created plan with id = " + createdPlan.getId());
        System.out.println("Plan state = " + createdPlan.getState());
        
        // Set up plan activate PATCH request
        List<Patch> patchRequestList = new ArrayList<>();
        Map<String, String> value = new HashMap<>();
        value.put("state", "ACTIVE");
        
        // Create update object to activate plan
        Patch patch = new Patch();
        patch.setPath("/");
        patch.setValue(value);
        patch.setOp("replace");
        patchRequestList.add(patch);
        
        // Activate plan
        createdPlan.update(apiContext, patchRequestList);
        System.out.println("Plan state = " + createdPlan.getState());
Login to Me Too
0 REPLIES 0

Haven't Found your Answer?

It happens. Hit the "Login to Ask the community" button to create a question for the PayPal community.