编辑代码

using System;
using System.IO;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

public class Program
{
    // 获取签名
    public static string GetSign(string secret, string data)
    {
        var keyBytes = Encoding.UTF8.GetBytes(secret);
        var messageBytes = Encoding.UTF8.GetBytes(data);
        var sign = "";
        using (var hmac = new HMACSHA256(keyBytes))
        {
            var hash = hmac.ComputeHash(messageBytes);
            sign = Convert.ToBase64String(hash);
        }
        Console.WriteLine("\r\n sign:" + sign);
        return sign;
    }

    // 获取token
    public static string GetToken()
    {
        // 设置请求的URL  
        var url = "https://openapi-sbx.yunexpress.cn/openapi/oauth2/token";

        // 创建要发送的JSON数据对象  
        var data = new
        {
            grantType = "client_credentials",
            appId = "53356b1906c1",
            appSecret = "a830285cd8a645efad3467a0fc9dd8bd",
            sourceKey = "x9lsqnmq"
        };
        string jsonData = JsonConvert.SerializeObject(data);

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "POST";
        request.ContentType = "application/json";

        byte[] byteArray = Encoding.UTF8.GetBytes(jsonData);
        request.ContentLength = byteArray.Length;
        using (Stream dataStream = request.GetRequestStream())
        {
            dataStream.Write(byteArray, 0, byteArray.Length);
        }
        var responseBody = "";
        // 获取响应  
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            if (response.StatusCode == HttpStatusCode.OK)
            {
                // 读取响应内容  
                using (Stream responseStream = response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(responseStream))
                    {
                        responseBody = reader.ReadToEnd();
                        Console.WriteLine("\r\n token:" + responseBody);
                    }
                }
            }
            else
            {
                Console.WriteLine("Error: " + response.StatusCode);
            }
        }
        JObject jsonObject = JObject.Parse(responseBody);
        return jsonObject["accessToken"].ToString();
    }

    // 创建订单
    public static void CreateOrder()
    {
        // 设置请求的URL  
        var url = "https://openapi-sbx.yunexpress.cn/v1/order/package/create";

        // 示例数据  
        string body = "{\"product_code\":\"S1002\",\"customer_order_number\":\"\",\"order_numbers\":{\"waybill_number\":\"\",\"platform_order_number\":\"platform_order_number\",\"tracking_number\":\"\",\"reference_numbers\":[\"12124545454\",\"oooppopopop1\"]},\"weight_unit\":\"KG\",\"size_unit\":\"CM\",\"packages\":[{\"length\":1.22,\"width\":2.82,\"height\":3.39,\"weight\":4.999}],\"receiver\":{\"first_name\":\"first_name\",\"last_name\":\"last_name\",\"company\":\"company\",\"country_code\":\"RT\",\"province\":\"province\",\"city\":\"city\",\"address_lines\":[\"xx\"],\"postal_code\":\"postalcode\",\"phone_number\":\"phone_number\",\"email\":\"1231232123@email.com\",\"certificate_type\":\"cer\",\"certificate_code\":\"certificate_code\"},\"declaration_info\":[{\"sku_code\":\"sku_code\",\"name_local\":\"name_local\",\"name_en\":\"name_en\",\"quantity\":1,\"unit_price\":2,\"unit_weight\":3,\"hs_code\":\"hs_code\",\"sales_url\":\"sales_url\",\"currency\":\"\",\"material\":\"material\",\"purpose\":\"purpose\",\"brand\":\"brand\",\"spec\":\"spec\",\"model\":\"model\",\"remark\":\"remark\"}],\"sender\":{\"first_name\":\"first_name\",\"last_name\":\"last_name\",\"company\":\"company\",\"country_code\":\"11\",\"province\":\"province\",\"city\":\"city\",\"address_lines\":[\"address_lines1\"],\"postal_code\":\"postal_code\",\"phone_number\":\"phone_number\",\"email\":\"email\",\"certificate_type\":\"cer\",\"certificate_code\":\"certificate_code\"},\"customs_number\":{\"tax_number\":\"tax_number\",\"ioss_code\":\"ioss_code\",\"vat_code\":\"vat_code\",\"eori_number\":\"eori_number\"},\"extra_services\":[{\"extra_code\":\"v1\",\"extra_value\":\"云途预缴\"}],\"platform_account_code\":\"\",\"source_code\":\"YT\",\"sensitive_type\":\"D\",\"label_type\":\"PNG\"}";
        string timestampMilliseconds = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
        var data = "body=" + body + "&date=" + timestampMilliseconds + "&method=POST&uri=/v1/order/package/create";
        Console.WriteLine("date:" + data);
        var secret = "a830285cd8a645efad3467a0fc9dd8bd"; // 替换为实际的 appSecret

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "POST";
        request.ContentType = "application/json";
        // 设置请求的header  
        request.Headers.Add("token", GetToken());
        request.Headers.Add("sign", GetSign(secret, data));
        request.Headers.Add("date", timestampMilliseconds);

        byte[] byteArray = Encoding.UTF8.GetBytes(body);
        request.ContentLength = byteArray.Length;
        using (Stream dataStream = request.GetRequestStream())
        {
            dataStream.Write(byteArray, 0, byteArray.Length);
        }
        var responseBody = "";
        // 获取响应  
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            if (response.StatusCode == HttpStatusCode.OK)
            {
                // 读取响应内容  
                using (Stream responseStream = response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(responseStream))
                    {
                        responseBody = reader.ReadToEnd();
                    }
                }
            }
            else
            {
                Console.WriteLine("Error: " + response.StatusCode);
            }
        }

        // 输出响应内容  
        Console.WriteLine("\r\n response:" + responseBody);
    }

    public static void Main()
    {
        CreateOrder();
    }
}