Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(connector): [Recurly] Add record back support for recurly [V2] #7544

Merged
merged 16 commits into from
Mar 24, 2025

Conversation

aniketburman014
Copy link
Contributor

@aniketburman014 aniketburman014 commented Mar 18, 2025

Type of Change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring
  • Dependency updates
  • Documentation
  • CI/CD

Description

Add support for record back flow for recurly.

What is record back flow ?

After payment is retried by revenue recovery, we need to update the billing processor invoice.

Recurly flow

We record the transaction in recurly created by internal system. This transaction will automatically update the invoice status in recurly system.

Additional Changes

  • This PR modifies the API contract
  • This PR modifies the database schema
  • This PR modifies application configuration/environment variables

Motivation and Context

How did you test it?

This can only be tested in local since the entire recovery flow is not complete. Tested locally by triggering the connector integration manually.
Here are the local testing logs :

Screenshot 2025-03-20 at 4 21 51 PM

Checklist

  • I formatted the code cargo +nightly fmt --all
  • I addressed lints thrown by cargo clippy
  • I reviewed the submitted code
  • I added unit tests for my changes where possible

Sorry, something went wrong.

@aniketburman014 aniketburman014 requested review from a team as code owners March 18, 2025 07:49
Copy link

semanticdiff-com bot commented Mar 18, 2025

@aniketburman014 aniketburman014 removed request for a team March 18, 2025 07:57
@aniketburman014 aniketburman014 changed the title Recurly record back feat(connector): [Recurly] Add record back support for recurly [V2] Mar 20, 2025
@aniketburman014 aniketburman014 removed the request for review from a team March 20, 2025 08:36
Comment on lines 612 to 618
Ok(format!(
"{}/invoices/{}/{}",
self.base_url(connectors),
invoice_id,
status_endpoint
))
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Ok(format!(
"{}/invoices/{}/{}",
self.base_url(connectors),
invoice_id,
status_endpoint
))
}
Ok(format!(
"{}/invoices/{invoice_id}/{status_endpoint}",
self.base_url(connectors)
))
}

Comment on lines 310 to 311
// inovice id
pub id: common_utils::id_type::PaymentReferenceId,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// inovice id
pub id: common_utils::id_type::PaymentReferenceId,
// inovice id
pub id: id_type::PaymentReferenceId,

Comment on lines 600 to 605
let status = RecurlyRecordStatus::try_from(req.request.attempt_status).map_err(|_| {
errors::ConnectorError::NotSupported {
message: "Invalid attempt status for Recurly".to_string(),
connector: "recurly",
}
})?;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this map_err required ?

Comment on lines 608 to 609
RecurlyRecordStatus::Success => "mark_successful",
RecurlyRecordStatus::Failure => "mark_failed",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we have this string as global variables ?

@hyperswitch-bot hyperswitch-bot bot added the M-api-contract-changes Metadata: This PR involves API contract changes label Mar 20, 2025
@aniketburman014 aniketburman014 added api-v2 A-connector-integration Area: Connector integration and removed api-v2 labels Mar 20, 2025
@likhinbopanna likhinbopanna added this pull request to the merge queue Mar 24, 2025
Merged via the queue into main with commit 2b70c94 Mar 24, 2025
21 of 27 checks passed
@likhinbopanna likhinbopanna deleted the recurly_record_back branch March 24, 2025 12:01
pixincreate added a commit that referenced this pull request Mar 24, 2025
…lobalpay-fixes

* 'main' of github.com:juspay/hyperswitch:
  feat(connector): [Recurly] Add record back support for recurly [V2] (#7544)
  refactor(webhook): add jwt authenticated endpoint to list unique webhook events for a profile (#7325)
  feat(core): Add three_ds_requestor_app_url in business_profile (#7589)
  feat(refunds): Add refunds diesel model support in V2 API (#7503)
  fix(connector): [globalpay] address 5xx due to deserialization issue when `account_name` is not passed (#7540)
  chore: update production endpoint url for globalPay (#7588)
  feat(connector): [Stripebilling] add record back support for stripebilling (#7561)
  feat(router): Make payment_method_subtype optional in payment_attempt [V2] (#7568)
  fix(connector): RSync voided status mapping in AuthorizeDotNet (#7566)
  chore(version): 2025.03.24.0
  feat(connector): [Coingate] implement refunds  (#7513)
  feat(connectors): [Redsys] add Psync and Rsync support (#7586)
  refactor(connector): [BRAINTREE] Pass email in payment requests (#7591)
  feat(webhook): Return events list and total_count on list initial delivery attempt call (#7243)
  refactor(router): make error_type generic in domain_models inorder to avoid conversion of errors in storage_impl (#7537)
  feat(router): [V2] Return connector customer reference IDs in `CustomerResponse` (#7319)
  feat: core changes for extended authorization (#6766)
  feat(coingate): Add Payment webhooks (#7489)
  refactor(dynamic_routing): change insert operation to upsert for dynamic_routing_stats (#7398)
  feat(connectors): [Redsys] add 3D secure card payment support, including transaction capture, cancellation, and refunds (#7508)
pixincreate added a commit that referenced this pull request Mar 27, 2025
…e-status-check

* 'main' of github.com:juspay/hyperswitch: (74 commits)
  chore(version): 2025.03.26.0
  feat(connector): [Coingate] add wasm changes for coingate metadata (#7632)
  feat(connector): [TRUSTPAY]  implement Banktransfer PaymentMethod (#7575)
  feat(connector): [BANKOFAMERICA] Implement Samsung Pay (#6888)
  fix(connector):  add Nomupay in payout_connector_list for all environment (#7521)
  chore(version): 2025.03.25.0
  feat(connector): [Recurly] Add record back support for recurly [V2] (#7544)
  refactor(webhook): add jwt authenticated endpoint to list unique webhook events for a profile (#7325)
  feat(core): Add three_ds_requestor_app_url in business_profile (#7589)
  feat(refunds): Add refunds diesel model support in V2 API (#7503)
  fix(connector): [globalpay] address 5xx due to deserialization issue when `account_name` is not passed (#7540)
  chore: update production endpoint url for globalPay (#7588)
  feat(connector): [Stripebilling] add record back support for stripebilling (#7561)
  feat(router): Make payment_method_subtype optional in payment_attempt [V2] (#7568)
  fix(connector): RSync voided status mapping in AuthorizeDotNet (#7566)
  chore(version): 2025.03.24.0
  feat(connector): [Coingate] implement refunds  (#7513)
  feat(connectors): [Redsys] add Psync and Rsync support (#7586)
  refactor(connector): [BRAINTREE] Pass email in payment requests (#7591)
  feat(webhook): Return events list and total_count on list initial delivery attempt call (#7243)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-connector-integration Area: Connector integration M-api-contract-changes Metadata: This PR involves API contract changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants