Android Shopify 移动购买版本 - 3.1.1 Retryhandler 错误

标签 android shopify mobile-application shopify-app

您好,我正在使用下面提到的代码来提取订单确认。但我无法从此查询中获取订单 ID 和订单详细信息。即使订单已确认,也无法获取订单 ID 和订单详细信息。 目前我正在使用 shopify mobilebuysdk:buy3:3.1.1

graphClient!!.queryGraph(query).enqueue(
    object : GraphCall.Callback<Storefront.QueryRoot> {
        override fun onResponse(@NonNull response: GraphResponse<Storefront.QueryRoot>) {

            if (response.data()!!.getNode() as Storefront.Checkout != null) {
                val checkout = response.data()!!.getNode() as Storefront.Checkout
                println("CheckOut : " + checkout)

                if (checkout != null) {

                    if (checkout.getOrder() != null) {
                        if (checkout.getOrder().getId().toString() != null) {
                            val orderId = checkout.getOrder().getId().toString()
                            println("Order ID : " + orderId)
                        }
                    }

                }


            }


        }

        override fun onFailure(@NonNull error: GraphError) {}
    }, null,
    RetryHandler.exponentialBackoff(1, TimeUnit.MILLISECONDS, 1.2f)
            .whenResponse<Storefront.QueryRoot> { response ->
                (response.data()?.getNode() as Storefront.Checkout).getOrder() == null
            }
            .maxCount(10)
            .build())

最佳答案

val checkoutId = ID(tinyDB!!.getString("New_checkoutID"))
    val query = Storefront.query({ rootQuery ->
        rootQuery
                .node(checkoutId, { nodeQuery ->
                    nodeQuery
                            .onCheckout({ checkoutQuery ->
                                checkoutQuery
                                        .order({ orderQuery ->
                                            orderQuery
                                                    .orderNumber()
                                                    .totalPrice()
                                                    .processedAt()
                                        }

                                        )
                            }
                            )
                }
                )
    }
    )    

graphClient!!.queryGraph(query).enqueue(
            object : GraphCall.Callback<Storefront.QueryRoot> {
                override fun onResponse(@NonNull response: GraphResponse<Storefront.QueryRoot>) {
                    val checkout = response.data()!!.getNode() as Storefront.Checkout
                    val orderId = checkout.getOrder().getId().toString()
                }

                override fun onFailure(@NonNull error: GraphError) {}
            }, null,
            RetryHandler.exponentialBackoff(1, TimeUnit.MILLISECONDS, 1.2f)
                    .whenResponse<Storefront.QueryRoot>(
                            { response -> (response.data().getNode() as Storefront.Checkout).getOrder() == null }
                    )
                    .maxCount(10)
                    .build()
    )

关于Android Shopify 移动购买版本 - 3.1.1 Retryhandler 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47198239/

相关文章:

java - 如何将一个元素从一个 Activity 和另一个 Activity 添加到数组列表

java - Get 请求中的奇怪行为

javascript - 如何在回调函数之外访问 shopify-node-api 请求的结果

ios - 通过 Inappbrowser(IOS) 调用网页很慢。怎么可能使用 Cordova WkWebView?

java - 编辑文本和反射

java - 如何运行、测试和处理低电量弹出窗口

android - 将属性传递给复合 View 中的 subview

javascript - 我们可以在 cart.liquid 文件中添加送货和账单地址表单吗?

java - 为什么我的菜单栏不显示?

api - Symfony2 api 的身份验证(供移动应用程序使用)