如何解决Shopify GraphQL Checkout响应中显示的checkout null问题

时间:2018-07-21 10:43:34

标签: swift graphql

我正在使用GraphQL / Storefront SDK进行shopify项目。目前,我面临结帐响应问题。根据文档,我创建了输入,查询,最后创建了NSURLSession Task。查询执行,但检出和错误的响应都显示为空。我不明白输入中出了什么问题。

这是代码段:

let inputCheckout = Storefront.CheckoutCreateInput.create(
   email: .value(Preferences.value(forKey: "CustomerEmail") as? String),
   lineItems: .value(lineItems),
   shippingAddress: .value(nil),
   note: .value("This is a testing notes"),
   customAttributes: .value(nil),
   allowPartialAddresses: .value(true)
)

现在我正在创建突变:

 let mutation = Storefront.buildMutation {$0
            .checkoutCreate(input: inputCheckout) { $0
                .checkout { $0
                    .webUrl()
                }
                .userErrors { $0
                    .field()
                    .message()
                }
            }
        }

然后

 let task = kAppDelegate.client.mutateGraphWith(mutation) { response, error in

       print("error = \(error.debugDescription)")
       print("response = \(response?.checkoutCreate?.fields)")

  }
  task.resume()

这是回应:

error = nil
response = Optional(["checkout": <null>, "userErrors": <__NSArray0 0x604000008960>(

)
])

没有错误显示。...也没有响应。...我进行了很多搜索,但没有找到解决方法。

1 个答案:

答案 0 :(得分:1)

经过大量的审判和审判,我得到了答案:

仅需替换此方法参数:

let inputCheckout = Storefront.CheckoutCreateInput.create(
   email: .value(Preferences.value(forKey: "CustomerEmail") as? String),
   lineItems: .value(lineItems),
   shippingAddress: .value(nil),
   note: .value("This is a testing notes"),
   customAttributes: .value(nil),
   allowPartialAddresses: .value(true)
)

有了这个:

let inputCheckout = Storefront.CheckoutCreateInput.create(
   lineItems: .value(lineItems),
   allowPartialAddresses: .value(true)
)

现在响应正确无误。