#Chirag-nopCommerce

1 messages · Page 1 of 1 (latest)

low wagon
#

heya @glass bolt, if you're integrating with Stripe through nopCommerce, you would want to reach out to nopCommerce regarding your questions, since they built the plugin

glass bolt
#

Yes I am a nopCommerce developer.

#

But the problem is I can not find any sample or document how stripe apply 3Ds in wallet Google pay and apple pay

#

you got my point?

#

Hello @low wagon
I need to apply 3D secure in digital wallet of stripe.
This is possible or not?
If it is possible then what is the process to do it?

low wagon
#

3DS usually isn't requested for Google pay and Apple pay because the cards are already "authenticated" when added to these two wallets

glass bolt
#

Means we can not do 3DS in wallet integration?

#

But There is problem when I am trying to pay through 3DS card.

When I will try to pay 3DS card, Payment intent will create it gives me Action_Required status.

#

So I am stuck with the flow.

low wagon
#

can you share the PaymentIntent for the above test?

glass bolt
#

Sure

#

{ "id": "pi_3KJtctCIUXaelLSh19npiRMu", "object": "payment_intent", "amount": 4800, "amount_capturable": 0, "amount_received": 0, "application": null, "application_fee_amount": null, "canceled_at": null, "cancellation_reason": null, "capture_method": "manual", "charges": { "object": "list", "data": [], "has_more": false, "url": "/v1/charges?payment_intent=pi_3KJtctCIUXaelLSh19npiRMu" }, "client_secret": "pi_3KJtctCIUXaelLSh19npiRMu_secret_IKCUWQ3oqzMMJ7uePWRL7X8i6", "confirmation_method": "automatic", "created": 1642658163, "currency": "usd", "customer": null, "description": "nop order 440", "invoice": null, "last_payment_error": null, "livemode": false, "metadata": {}, "next_action": { "alipay_handle_redirect": null, "oxxo_display_details": null, "redirect_to_url": null, "type": "use_stripe_sdk" }, "on_behalf_of": null, "payment_method": "pm_1KJtcaCIUXaelLShKUDM2v6L", "payment_method_options": { "alipay": null, "bancontact": null, "card": { "installments": null, "network": null, "request_three_d_secure": "automatic" }, "oxxo": null, "p24": null, "sepa_debit": null, "sofort": null }, "payment_method_types": [ "card" ], "receipt_email": null, "review": null, "setup_future_usage": null, "shipping": null, "source": null, "statement_descriptor": null, "statement_descriptor_suffix": null, "status": "requires_action", "transfer_data": null, "transfer_group": null}

#

Hello @low wagon

#

see above response when I create payment intent with 3DS card

#

See the status is requires_action

low wagon
#

okay, but this isn't using googlepay or applepay

glass bolt
#

I am trying to testing with these cards

#

If I use without 3DS card it's work for me\

low wagon
#

let me rephrase your question - you're testing with a 3DS card, and are wondering how to handle the situation when authentication is required

glass bolt
#

yes, if something like OTP or any other screen for 3Ds auth

#

I also integrate Stripe card.
On stripe card payment, if I added 3Ds card then stripe show me one popup for auth if I click ok then my auth is complete and move to the next process.
it is possible something like this in wallet?

low wagon
#

how does your payment flow work?
Are you creating a PaymentIntent and then using Elements to collect the card details?
or are you using Elements to collect the card details, and then attempting to charge the card later?

glass bolt
#

first collet card detail then I will call
paymentIntentService.CreateAsync

low wagon
#

how are you collecting the card detail?

glass bolt
low wagon
#

looking at the API calls your Stripe account is making, you're using Stripe Elements

glass bolt
#

if (typeof stripe == 'undefined') {
stripe = Stripe('@Model.PublishableKey');
}
var elements = stripe.elements();
paymentRequest = stripe.paymentRequest({
country: '@Model.AccountCountryCode',
currency: '@Model.Currency',
total: {
label: '@Model.Description',
amount: @(Model.Amount)
},
requestShipping:false,
requestPayerName: true,
requestPayerEmail: true
});

            // Check the availability of the Payment Request API first.
            paymentRequest.canMakePayment().then(function (result) {
                if (result) {
                    $("#stripe-digitalwallets-pay-button").show();
                }
            });
#

paymentRequest.on('paymentmethod', function (ev) {
if (ev.error) {
// Show error in payment form
stripeDigitalWalletsError(ev.error);
} else {
//change the order amount, add Tax and shipping fee
// The payment has succeeded.
var postData = $('#shopping-cart-form').serializeArray();

#

postData.push({ name: "stripedigitalwallet.payerName", value: ev.payerName });
postData.push({ name: "stripedigitalwallet.payerEmail", value: ev.payerEmail });
postData.push({ name: "stripedigitalwallet.payerPhone", value: ev.payerPhone });
postData.push({ name: "stripedigitalwallet.billingaddress.city", value: ev.paymentMethod.billing_details.address.city });
postData.push({ name: "stripedigitalwallet.billingaddress.country", value: ev.paymentMethod.billing_details.address.country });
postData.push({ name: "stripedigitalwallet.billingaddress.line1", value: ev.paymentMethod.billing_details.address.line1 });
postData.push({ name: "stripedigitalwallet.billingaddress.line2", value: ev.paymentMethod.billing_details.address.line2 });
postData.push({ name: "stripedigitalwallet.billingaddress.postal_code", value: ev.paymentMethod.billing_details.address.postal_code });
postData.push({ name: "stripedigitalwallet.billingaddress.state", value: ev.paymentMethod.billing_details.address.state });
postData.push({ name: "stripedigitalwallet.billingaddress.email", value: ev.paymentMethod.billing_details.email });
postData.push({ name: "stripedigitalwallet.billingaddress.phone", value: ev.paymentMethod.billing_details.phone });
postData.push({ name: "stripedigitalwallet.billingaddress.name", value: ev.paymentMethod.billing_details.name });

                    stripeDigitalWalletsCreatePayment(ev.paymentMethod.id, @(Model.Amount));
                }
            });
#

@low wagon

low wagon
#

give me a while to look into this

glass bolt
#

ok

glass bolt
#

I am waiting for your response.

low wagon
#

This may take me a while to look into so if you need to head off, you may want to write in to Stripe Support and we'll get back to you async.

glass bolt
#

Sure you can take your time.
I will wait for your response.

Thanks you

low wagon