Applepayconfig - выплаты дебетовых карт не работают? (трепетание/полоса)Javascript

Форум по Javascript
Ответить
Anonymous
 Applepayconfig - выплаты дебетовых карт не работают? (трепетание/полоса)

Сообщение Anonymous »


Я пытаюсь заплатить с дебетовой картой. В настоящее время он работает с кредитной картой.

Код: Выделить всё

final String defaultGooglePay = '''{
"provider": "google_pay",
"data": {
"environment": "PRODUCTION",
"apiVersion": 2,
"apiVersionMinor": 0,
"allowedPaymentMethods": [
{
"type": "CARD",
"tokenizationSpecification": {
"type": "PAYMENT_GATEWAY",
"parameters": {
"gateway": "stripe",
"stripe:version": "2018-10-31",
"stripe:publishableKey": "${dotenv.env['STRIPE_PUBLISHABLE']!}"
}
},
"parameters": {
"allowedCardNetworks": ["VISA", "MASTERCARD"],
"allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
"billingAddressRequired": true,
"billingAddressParameters": {
"format": "FULL",
"phoneNumberRequired": true
}
}
}
],
"merchantInfo": {
"merchantName": "CLUBLINK UK"
},
"transactionInfo": {
"countryCode": "GB",
"currencyCode": "GBP"
}
}
}''';

final defaultGooglePayConfig =
PaymentConfiguration.fromJsonString(defaultGooglePay);

final String defaultApplePay = '''{
"provider": "apple_pay",
"data": {
"merchantIdentifier": "*****",
"displayName": "CLUBLINK",
"merchantCapabilities": ["3DS", "debit", "credit"],
"supportedNetworks": ["visa", "mastercard"],
"countryCode": "GB",
"currencyCode": "GBP",
"requiredBillingContactFields": null,
"requiredShippingContactFields": null,
"shippingMethods": null,
"tokenizationSpecification": {
"type": "PAYMENT_GATEWAY",
"parameters": {
"gateway": "stripe",
"stripe:version": "2025-04-30",
"stripe:publishableKey": "${dotenv.env['STRIPE_PUBLISHABLE']!}"
}
}
}
}''';

final defaultApplePayConfig =
PaymentConfiguration.fromJsonString(defaultApplePay);
Вот моя функция Deno
import Stripe from "npm:stripe@^15.8.0";
import { createOrRetrieveCustomer } from "../utils/supabase.ts";

const stripe = new Stripe(Deno.env.get("STRIPE_SECRET_KEY")!);

Deno.serve(async (req) => {
const body = req.body;

if (!body) {
return new Response("No body", { status: 400 });
}

const reader = body.getReader();
const chunks: Uint8Array[] = [];
let done = false;

while (!done) {
const { value, done: doneReading } = await reader.read();
if (value) {
chunks.push(value);
}
done = doneReading;
}

const fullBody = new Uint8Array(
chunks.reduce((acc, chunk) => acc + chunk.length, 0),
);
let offset = 0;
for (const chunk of chunks) {
fullBody.set(chunk, offset);
offset += chunk.length;
}

const text = new TextDecoder().decode(fullBody);
const data = JSON.parse(text);
const connectedAccountId = data.connectedAccountId;
const amount = data.amount;
const authHeader = req.headers.get("Authorization")!;
const customer = await createOrRetrieveCustomer(authHeader);

try {
const paymentIntent: Stripe.PaymentIntent = await stripe.paymentIntents.create({
amount: Number(amount),
currency: "gbp",
customer: customer.id,
payment_method_types: ['card'],
payment_method_options: {
card: {
request_three_d_secure: 'automatic',
},
},
application_fee_amount: Math.round(amount * 0.025),
transfer_data: {
destination: connectedAccountId,
},
});

const res = {
clientSecret: paymentIntent.client_secret,
};

return new Response(JSON.stringify(res), {
headers: { "Content-Type": "application/json" },
status: 200,
});

} catch (error) {
console.error("Stripe Error:", error);
return new Response(JSON.stringify({ error: error.message }), {
headers: { "Content-Type": "application/json" },
status: 400,
});
}
});
< /code>
Я ожидал, пытаясь купить билет, у меня будут варианты всех моих карт в моем яблочном кошельке. Только моя кредитная карта покажет, но при использовании кредитной карты платеж будет обрабатываться правильно.

Подробнее здесь: https://stackoverflow.com/questions/796 ... ter-stripe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»