Shopify Web签出问题
我正在做。在那之后,我收到了一个收银台回拨的回拨 我遵循了写下的方式 ====================================================================== 我面临以下问题: 1.Shopify Web签出问题,shopify,shopify-app,shopify-mobile-buy-sdk,Shopify,Shopify App,Shopify Mobile Buy Sdk,我正在做。在那之后,我收到了一个收银台回拨的回拨 我遵循了写下的方式 ====================================================================== 我面临以下问题: 1.ID paymentId= 它不应该是paymentId,它是checkoutId,而将作为的响应接收 2.在以下代码的响应中未获得空值: -2.1如果我删除了下面的行,我就可以获得一些数据: .onPayment(paymentQuery->paymentQuer
ID paymentId=代码>
它不应该是paymentId,它是checkoutId,而将作为的响应接收
2.在以下代码的响应中未获得空值:
-2.1如果我删除了下面的行,我就可以获得一些数据:
.onPayment(paymentQuery->paymentQuery
因此,代码将如下所示:
.node(paymentId) { nodeQuery: NodeQuery ->
nodeQuery.onCheckout { checkoutQuery: CheckoutQuery ->
checkoutQuery
.createdAt()
.updatedAt()
.completedAt()
.email()
.ready()
.order {
it.orderNumber()
}
}
}
在上面的代码中,我总是得到ready=true(无论我是否购买了产品)。ready字段在retryHandler函数中使用
RetryHandler.exponentialBackoff(500, TimeUnit.MILLISECONDS, 1.2f)
.whenResponse(
response -> ((Storefront.Payment) ((GraphResponse<Storefront.QueryRoot>) response).data().getNode()).getReady() == false
)
.maxCount(12)
.build()
RetryHandler.exponentialBackoff(500,TimeUnit.ms,1.2f)
.什么时候答复(
响应->((Storefront.Payment)((GraphResponse)response.data().getNode()).getReady()==false
)
.maxCount(12)
.build()
-2.2,我得到order=null。我需要显示orderNumber,那么我如何才能得到它?
==================================================================
预期行为:
- 在第1点中,可能是键入错误,而不是
paymentId
,它必须显示checkoutId
,因为这会让开发人员感到困惑
- 在第2点中,它必须返回所需的数据
- 在第2.1点中,成功下单时必须更改
就绪
字段
- 在第2.2点中,
订单
字段不能为空
找到了解决方案
第1点,
- 它是checkoutId而不是paymentId
第2点,
注意:请注意,为了获得更新结果,您必须从GraphClient对象中删除defaultCachePolicy,我们正在将商店设置为Shopify
现在,将HTTPCachePolicy传递为
HttpCachePolicy.Default.NETWORK\u仅限
查询如下:
rootQuery.node(paymentId) { nodeQuery: NodeQuery ->
nodeQuery.onCheckout { checkoutQuery: CheckoutQuery ->
checkoutQuery
.createdAt()
.updatedAt()
.completedAt()
.email()
.ready()
.order {
it.orderNumber()
}
}
}
没错,在iOS GIT文档中,他们提到它是checkout\u id,但在Android GIT文档中,他们提到它与payment\u id相同
RetryHandler.exponentialBackoff(500, TimeUnit.MILLISECONDS, 1.2f)
.whenResponse(
response -> ((Storefront.Payment) ((GraphResponse<Storefront.QueryRoot>) response).data().getNode()).getReady() == false
)
.maxCount(12)
.build()
rootQuery.node(paymentId) { nodeQuery: NodeQuery ->
nodeQuery.onCheckout { checkoutQuery: CheckoutQuery ->
checkoutQuery
.createdAt()
.updatedAt()
.completedAt()
.email()
.ready()
.order {
it.orderNumber()
}
}
}