react native 原生js处理支付流程

本文介绍了一个ReactNative应用中的支付流程实现细节,包括处理礼品卡支付、优惠券使用、积分抵扣等功能,并阐述了如何根据支付情况调整订单状态及后续操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

React Native 版本执行0.57的规则

在实际项目中走支付流程的时候,会加入很多预选项目,比如礼品卡结算,优惠券的使用,积分的抵扣

// 下单
    _generatOrders() {
        this.setState({
            isLoading: true,
        })
        Fetch(requestUrl.generatOrders, {
            "userId": UserInfo.id,
            "addressId": this.state.isPickUp == "0" ? this.state.orderInfo.addMap.id : '',// 收货地址id
            "invoicetype": this.state.invoice.invoicetype,// 发票类型 0不开 1个人 2公司
            "taitou": this.state.invoice.taitou,// 发票taitou
            "shibiehao": this.state.invoice.shibiehao,// 发票识别码
            "sellerId": UserInfo.agentFlag == '1' ? UserInfo.id : '0',// 店铺id
            "dis": "0",// 运营商id
            "couponId": this.state.orderInfo.maxCoupon ? this.state.orderInfo.maxCoupon.id : '',// 优惠券关联表id
            "isGift": this.state.isGift,// 1使用礼品卡支付  0不用
            "goodsId": this.state.goodsJson,// 商品信息
            "isVipBean": this.state.isJifen,// 1使用积分 0不用
            "model": this.state.source == "Operator" ? '1' : "0",// 0:正常订单 1:联通卡订单
            "model_type": "0",// 0:正常订单  1:团购订单
            "remarks": this.state.defaultVal ? this.state.defaultVal : "",
            "isPickUp": this.state.isPickUp,// 是否自提  0不是 1是
            "shopCode": this.state.isPickUp == "1" ? this.state.orderInfo.addMap.agent_num ? this.state.orderInfo.addMap.agent_num : this.state.agent_num : '',// 自提门店的编码
            "fromType": this.state.source == "qianggou" ? '1' : "0",// 是否为抢购 0不是 1是
            "qiangGouActivityId": this.state.source == "qianggou" ? this.state.activityId : '',// 抢购活动id
            "isFinal": this.state.isFinal ? this.state.isFinal : "",
            "finalOrderId": this.state.YusorderId ? this.state.YusorderId : "",

        }).then(data => {
            console.log(data)
            if (data.status == "SUCCESS") {
                // data.data={
                //     goodsSum:129800,
                //     orderId:"20190109170930402",
                //     payInfoId:"98ec1b5089424f7fb6fc9c78c7230665",
                //     pay_model:0
                // }
                this.state.source == 'cart' && this.deleteGoods();
                if (data.data.goodsSum == 0) {
                    this.unpickService(data.data);
                } else {
                    this.setState({
                        isLoading: false,
                    })
                    this.props.navigation.navigate("Pay", { "payData": data.data })
                }
            } else if (data.status == "ERROR") {
                this.setState({
                    isLoading: false,
                })
                ToastShow({ "text": "下单失败" })
            } else if (data.status == "9") {
                this.setState({
                    isLoading: false,
                })
                ToastShow({ "text": "该商品已到达购买数量上线或库存不足!" })
            } else {
                this.setState({
                    isLoading: false,
                })
            }
        })
    }
    // 支付金额为0时的支付方式 也就是礼品卡支付
    unpickService(payData) {
        // payData={
        //     goodsSum:129800,
        //     orderId:"20190109170930402",
        //     payInfoId:"98ec1b5089424f7fb6fc9c78c7230665",
        //     pay_model:0
        // }
        Fetch(requestUrl.unpickService, {
            orderId: payData.orderId,
            attach: payData.payInfoId,
            status: "c010102",
            model_type: this.state.source == 'qianggou' ? "1" : "0",
        }).then(data => {
            console.log(data, "支付金额为0时")
            if (data.status == "SUCCESS") {
                this.setState({
                    isLoading: false,
                })
                this.props.navigation.navigate("PaySuccess", { "payData": payData, source: 'pay' });
            } else {
                this.setState({
                    isLoading: false,
                })
                this.props.navigation.navigate("OrderDetail", { orderId: payData.orderId, source: 'pay' })
            }
        })
    }
    // 删除购物车商品
    deleteGoods() {
        let ids = [];
        let num = 0;
        for (let key in this.state.goodsJson) {
            ids.push(key);
            num += this.state.goodsJson[key].num
        }
        Fetch(requestUrl.delectShopping, {
            "userId": UserInfo.id,
            "ids": ids
        }).then(data => {
            console.log(data)
            if (data.status == "SUCCESS") {
                DeviceEventEmitter.emit('ShopNum', (CartNum - num));
            }
        })
    }
}

礼品卡支付的时候,假如余额不如了,还是要走正常的支付流程,如果支付成功,改变订单状态,跳到支付成功的页面,把后台返回的商家支付签名等等一些其他的信息传到收银台页面唤起微信支付,支付宝支付,花呗支付。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值