嗨,我正在使用下面提到的代码来拉订单构象。但我无法从此查询中获取订单 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()
)
看看这个答案,购物网络结帐问题
第一件事是从QraphQL设置中删除HttpCachePolicy。尝试提供Network_Only订单状态 API 后。
你的问题就会消失。