[Google Pay] createPaymentRequest results in PaymentError
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 30/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- typescript
Direzione di ricerca
Start at GooglePayButton.createPaymentRequest and compare the supplied options with the Google Pay example, focusing on the PaymentError statusCode 10. Reproduce the call with the listed NativeScript, Google Pay, Stripe, and Android settings, then verify that the payment sheet appears instead of immediately invoking PaymentError.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I'm basically following the Google Pay example in a Vue app. Calling createPaymentRequest on the GooglePayButton object immediately results in the PaymentError handler being called, with statusCode 10 and statusMessage "10: ". I don't see any other error information being returned. The Google Pay sheet does not appear.
Using "@nativescript/core": "^8.5.6", "@nativescript/google-pay": "^0.1.2"
async onGooglePayTap(args) {
try {
if (global.isAndroid) {
const googlePayBtn = args.object;
// setup the event listeners
googlePayBtn.once(GooglePayEvents.PaymentCancelled, (args) => {
console.log("payment cancelled, not much to do here");
});
googlePayBtn.once(GooglePayEvents.PaymentSuccess, async (args) => {
console.log("PaymentSuccess");
// this is where you handle the response with the token from google pay to send to payment provider
const payloadToBackend = {
amount: 25.2,
method: "3DS",
"3DS": {
signature:
args.data.paymentMethodData.tokenizationData.token.signature,
type: "G", // for Google
version:
args.data.paymentMethodData.tokenizationData.token
.protocolVersion,
data: args.data.paymentMethodData.tokenizationData.token
.signedMessage,
},
};
// send your payload to your payment provider here
// const result = await this.someHttpMethodToYourProviderBackend(payloadToBackend);
if (result) {
// now show the user the confirmation screen
} else {
// show the user that something went wrong here
}
});
googlePayBtn.once(GooglePayEvents.PaymentError, (args) => {
console.log("PaymentError");
console.dir(args, { depth: null });
// TODO: let user know some error happened
});
const options = {
environment: "development",
theme: "light",
merchantInfo: {
merchantName: "Test Merchant",
},
allowedPaymentMethods: {
type: AllowedPaymentMethodsType.CARD,
parameters: {
allowPrepaidCards: true,
allowCreditCards: true,
billingAddressRequired: true,
billingAddressParameters: {
format: BillingAddressParametersFormat.MIN,
phoneNumberRequired: true,
},
},
tokenizationSpecification: {
type: TokenizationSpecificationType.PAYMENT_GATEWAY,
parameters: {
gateway: "stripe",
"stripe:version": "2018-10-31",
"stripe:publishableKey":
"redacted",
},
},
},
transactionInfo: {
currencyCode: "USD",
countryCode: "US",
transactionId: "283999292929929", // A unique ID that identifies a transaction attempt. Merchants can use an existing ID or generate a specific one for Google Pay transaction attempts. This field is required when you send callbacks to the Google Transaction Events API.
totalPriceStatus: TotalPriceStatusValue.FINAL,
totalPrice: 25.2,
totalPriceLabel: "Total",
checkoutOption: CheckoutOptionValue.DEFAULT,
},
emailRequired: true,
shippingAddressRequired: true,
shippingAddressParameters: {
allowedCountryCodes: ["US"],
phoneNumberRequired: true,
},
};
// this creates the payment request to the Google Pay SDK and will present the user with the payment sheet to complete the transaction
googlePayBtn.createPaymentRequest(options).catch((err) => {
console.log("error with create payment request", err);
});
console.log("created payment request");
}
} catch (error) {
console.log("Error with google pay", error);
}
},
- Lingua principale
- TypeScript
- Stelle
- 35
- Fork
- 13
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NativeScript/payments
-
com.android.billingclient:billing@@8.0.0 - com.google.android.gms.internal.play_billing.zzbg.zzeAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 28/100
NativeScript/payments#45 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
NativeScript/payments#43 · 2 reazioni ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
NativeScript/payments#39 ·
-
support Amazon Android appsAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
NativeScript/payments#36 · 2 commenti ·
-
[Restore Orders] MistakeAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
NativeScript/payments#35 ·
Tutte le issue di NativeScript/payments
Issue simili
-
needs-area
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/typespec-azure#5936 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
vercel-labs/scriptc#2910 ·
I maintainer di solito rispondono entro 1 giorno
-
automation missing-model model-sync provider:fireworks-ai
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
anomalyco/models.dev#12458 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno