Estoy buscando una forma de implementar la cancelación de fecha futura en la suscripción de PayPal, no puedo encontrarla en sus documentos ni en ninguna parte. Quiero que funcione así, de modo que cuando tengamos 14 días o menos antes de que finalice la suscripción, no podremos finalizar el ciclo de facturación este mes (lo finalizaremos el próximo mes). Está funcionando normalmente para la cancelación en la actualidad: aquí está el código hasta ahora.
paypal.configure({ mode: process.env.NODE_ENV === 'development' ? 'sandbox' : 'live', client_id: process.env.NODE_ENV === 'development' ? paypalConfig.sandboxClientId : paypalConfig.productionClientId, client_secret: process.env.NODE_ENV === 'development' ? paypalConfig.sandboxSecret : paypalConfig.productionSecret }); const cancelBillingAgreementSync = Meteor.wrapAsync(paypal.billingAgreement.cancel, paypal.billingAgreement); const getBillingAgreementSync = Meteor.wrapAsync(paypal.billingAgreement.get, paypal.billingAgreement); try { const oldBillingAgreement = getBillingAgreementSync(user.billing.paypalBillingAgreementId); if (oldBillingAgreement && oldBillingAgreement.state && oldBillingAgreement.state.toLowerCase() === 'active') { cancelBillingAgreementSync(user.billing.paypalBillingAgreementId, { note: 'Plan cancellation' }); if (manual) { Meteor.users.update(Meteor.userId(), { $set: { 'plan.cancelled': true } }); } } } catch (err) { console.error(err); throw new Meteor.Error(err.code || err.type || 500, err.message || err.reason); }```Si está integrando la versión actual de Suscripciones de PayPal , no se utilizan acuerdos de facturación. Las suscripciones se facturarán de acuerdo con el Plan que especifique.
El pagador siempre puede cancelar las suscripciones, por lo que debe facturar por adelantado. No hay forma de "evitar" que uno sea cancelado durante los últimos 14 días, ni habrá ninguna garantía de que el próximo pago se facture con éxito.