Shopify Web签出问题

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

我正在做。在那之后,我收到了一个收银台回拨的回拨

我遵循了写下的方式

======================================================================

我面临以下问题:

1.
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()
                  }
          }
      }