Untitled

 avatar
unknown
plain_text
2 years ago
3.0 kB
5
Indexable
onCheckOut = async () => {
        let {
            holderName,
            cardNumber,
            expiryMonth,
            expiryYear,
            cvv,
            checkoutID,
            paymentType, selected_paymetType
        } = this.state
        try {
            if (validatePaymentForm(
                holderName,
                cardNumber,
                expiryMonth,
                expiryYear,
                cvv
            )) {


                await this.generateCheckoutID();

                if (this.state.checkoutID) {
                    const paymentParams = {
                        checkoutID: this.state.checkoutID,
                        paymentBrand: paymentType[selected_paymetType].type,
                        cardNumber: cardNumber,
                        holderName: holderName,
                        expiryMonth: expiryMonth,
                        expiryYear: "20" + expiryYear,
                        cvv: cvv
                    };
                    console.log("transactionResult", this.state.checkoutID, paymentParams, NativeModules.Hyperpay)

                    NativeModules.Hyperpay.transactionPayment(paymentParams)
                        .then(transactionResult => {
                            console.log("paymentParams", transactionResult)
                            if (transactionResult) {
                                if (!transactionResult.redirectURL)
                                    return this.setState({ loading: false }, () => {
                                        global.openToast("The card data is incorrect", "e")
                                    })
                                else {
                                    if (transactionResult.status === 'pending') {
                                        Linking.openURL(transactionResult.redirectURL)
                                            .then(() => {
                                                this.setState({ loading: false });
                                            })
                                            .catch(err => {
                                                console.log("paymentParams2", err)
                                                this.setState({ loading: false });
                                                global.openToast(err.toString(), "e")
                                                console.log(err);
                                            });
                                    }
                                }
                            }
                        })
                        .catch(err => {

                            this.setState({ loading: false });
                            console.log("toStringtoString", err)
                            global.openToast(err.toString(), "e")
                        });
                }
            } else {

                this.setState({ loading: false });
            }
        } catch (e) {

            console.log('error', e);
        }
    };
Editor is loading...