Skip to content

Conversation

sshropshire
Copy link
Collaborator

Summary of changes

  • This PR moves UpdateClientConfigAPI to CorePayments so that it is accessible from all modules.
  • This PR also updates CCO for all PayPalWebCheckout funding sources

Checklist

  • Added a changelog entry

Authors

List GitHub usernames for everyone who contributed to this pull request.

@sshropshire sshropshire marked this pull request as ready for review July 8, 2025 18:41
private object Defaults {
const val INTEGRATION_ARTIFACT = "MOBILE_SDK"
const val USER_EXPERIENCE_FLOW = "INCONTEXT"
const val PRODUCT_FLOW = "MOBILE_SDK"
Copy link
Collaborator

@KunJeongPark KunJeongPark Jul 9, 2025

Choose a reason for hiding this comment

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

We landed on HERMES for product flow

Copy link
Collaborator

Choose a reason for hiding this comment

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

I also added channel to be explicit.
We had relied on defaults in XOR before but I wanted to be as explicit as possible
because they are respecting our CCO values sent in from us now. (I think on version soon to be released)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Ok is Nirvan aware of this change? The ticket has MOBILE_SDK for the PRODUCT_FLOW field.

Copy link
Collaborator

@KunJeongPark KunJeongPark Jul 9, 2025

Choose a reason for hiding this comment

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

Yes, I think the original ticket was made a while ago. And Nirvan was involved in all of the discussions with those teams. Apologies, I didn't realize that the ticket was not updated.

We are going to do some sandbox testing once XOR changes are released (It'd be on experiment in Sandbox until we ok it) and I will see if we need to send in channel explicitly then.

@KunJeongPark
Copy link
Collaborator

Steven, I'm a bit confused, are you going to replace #314
with this PR and another one for the card button?

@sshropshire
Copy link
Collaborator Author

Steven, I'm a bit confused, are you going to replace #314 with this PR and another one for the card button?

This PR is going to merge into that one. We will still need a complete overview of the BCDC feature.

@KunJeongPark
Copy link
Collaborator

Are you including the paypal-context-id in the header?
In iOS, we are passing it in in the networkClient.fetch in UpdateClientConfigAPI.

@sshropshire
Copy link
Collaborator Author

Are you including the paypal-context-id in the header?

Yes we're also setting it here in UpdateClientConfigAPI.kt

@sshropshire
Copy link
Collaborator Author

@KunJeongPark that's a good catch though, the header name is incorrect. I'll update.

@sshropshire
Copy link
Collaborator Author

@KunJeongPark actually should it be paypal-context-id? I noticed the header is also named paypal-client-context on iOS.

@KunJeongPark
Copy link
Collaborator

@KunJeongPark actually should it be paypal-context-id? I noticed the header is also named paypal-client-context on iOS.

you are right, I misspoke

private val coreConfig: CoreConfig,
private val applicationContext: Context,
private val graphQLClient: GraphQLClient,
private val resourceLoader: ResourceLoader
) {

private object Defaults {
const val INTEGRATION_ARTIFACT = "MOBILE_SDK"
const val USER_EXPERIENCE_FLOW = "INCONTEXT"
Copy link
Collaborator

Choose a reason for hiding this comment

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

USER_EXPERIENCE_FLOW is this value not NATIVE? because flow is initiated by native app, even though it's completed in web
Q: HERMES what does this mean?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I believe HERMES is an internal name I'm not 100% sure of its origin. All of the values in Defaults come from the JIRA ticket I was assigned. Nirvan may have further background on the actual meaning of each.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I think we took JS SDK's INCONTEXT value as web view and meant to distinguish native experiences like Apple Pay and Venmo as NATIVE.

Copy link
Collaborator

Choose a reason for hiding this comment

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

HERMES is name for old checkout experience, I think but here it is just default value most flows have for product_flow.
From what I understand, product_flow refers to a specific flow within your SDK and I don't think it applies to our SDK
so we were advised to just go with the default.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants