Woocommerce 创建订单 REST API 和 Xamarin Forms

Woocommerce Create Order REST API and Xamarin Forms

我正在构建一个用 Xamarin Forms 编写的结帐页面,用于在 Woocommerce 中创建订单。

我已在网上查找文档,但似乎找不到任何示例或代码来说明如何执行此操作。

我的问题是:是否有关于如何使用 Xamarin Forms 和 Woocommerce REST 创建简单订单的示例代码API?

我能够使用 REST API 从 Woocommerce 中提取产品,但似乎找不到任何代码示例来说明如何在 Xamarin 中使用 REST API 实际创建订单表格。

希望能帮到你。

干杯

这是我的代码 woocommerceapi.cs class.


class WoocommerceAPI
    {
        private static string website_url = "xxxxx";
        private static string consumer_key = "xxxxx";
        private static string consumer_secret = "xxxxx";

        private static string GetAllProductsApiUrl = string.Format("{0}/wc-api/v3/products?consumer_key={1}&consumer_secret={2}", website_url, consumer_key, consumer_secret);

        private static string GetAllProductsInACategoryApiUrl = "xxxxx/wc-api/v3/products?category=379&consumer_key=xxxxx&consumer_secret=xxxxx";

        public async Task<Products> GetAllProducts()
        {
            var httpClient = new HttpClient();
            var response = await httpClient.GetAsync(GetAllProductsApiUrl);
            HttpContent content = response.Content;
            var json = await content.ReadAsStringAsync();
            var products = JsonConvert.DeserializeObject<Products>(json);
            return products;
        }

        public async Task<Products> GetAllProductsInACategory()
        {
            var httpClient = new HttpClient();
            var response = await httpClient.GetAsync(GetAllProductsInACategoryApiUrl);
            HttpContent content = response.Content;
            var json = await content.ReadAsStringAsync();
            var products = JsonConvert.DeserializeObject<Products>(json);
            return products;
        }

    }

我设法构建了一个解决方案,现在可以使用了!

如果您遇到此问题并需要修复,请查看代码。


async void OrderBtnClicked(object sender, EventArgs e)
        {
   
            Console.WriteLine("Starting REST API");

            var clientapi = new HttpClient();

            clientapi = new Uri("xxxx?consumer_key=xxxx&consumer_secret=xxxx");

            Console.WriteLine("Starting REST API");

            var clientapi = new HttpClient();

            clientapi.BaseAddress = new Uri("xxxx?consumer_key=xxxx&consumer_secret=xxxx");

            // json data for adding customer
            string jsonData = @"{
                                ""first_name"" : ""John1"",
                                ""last_name"" : ""Doe1"",
                                ""email"" : ""john.doe1@example.com"",
                                ""username"" : ""john.doe1"",
                                ""password"" : ""mypassword"",
                                ""billing"": {
                                        ""first_name"": ""John"",
                                        ""last_name"": ""Doe"",
                                        ""company"": ""john doe company"",
                                        ""address_1"": ""969 Market"",
                                        ""address_2"": """",
                                        ""city"": ""San Francisco"",
                                        ""state"": ""CA"",
                                        ""postcode"": ""94103"",
                                        ""country"": ""US"",
                                        ""email"": ""john.doe@example.com"",
                                        ""phone"": ""(555) 555-5555""
                                    },
                                    ""shipping"": {
                                        ""first_name"": ""John"",
                                        ""last_name"": ""Doe"",
                                        ""company"": """",
                                        ""address_1"": ""969 Market"",
                                        ""address_2"": """",
                                        ""city"": ""San Francisco"",
                                        ""state"": ""CA"",
                                        ""postcode"": ""94103"",
                                        ""country"": ""US""
                                    }

                                }";

            Console.WriteLine("Here's the json string data");
            Console.WriteLine(jsonData);

            var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
            HttpResponseMessage apiresponse = await clientapi.PostAsync("xxxxx?consumer_key=xxxxx&consumer_secret=xxxx", content);

            var apiresult = await apiresponse.Content.ReadAsStringAsync();

            Console.WriteLine("Here's the result:");

            Console.WriteLine(apiresult);

            Console.WriteLine("REST API Post Completed.");

            await DisplayAlert("Checkout", "Completed", "ok");

        }

显然你可以设置 public 变量来存储 json 数据,非常欢迎你这样做,我不是你爸爸。