如何在asp.net c#中集成CoinGate APIS进行加密?

时间:2018-03-12 05:41:49

标签: c# asp.net-mvc bitcoin

我需要在我们的项目中整合加密货币。我必须选择 CoinGate APIS作为加密货币。我是这个Cryptography支付集成的新手,所以任何知道如何使用MVC c#的asp.net。 我已经为支付集成创建了一个演示,我去创建订单但是那时我收到错误未经授权。在这个演示中,我不知道如何为支付等设置callback_url ..任何人都知道怎么做才能告诉我。 我在下面列出了我的代码。 我必须使用此网址:

https://github.com/cizu64/Coingate.net

这是我的控制器创建订单的索引方法:

    public async Task<ActionResult> Index()
    {
        var cg = new Coingate.Net.Coingate(apikey, apiSecret,appId);
        var orders = await cg.CreateOrder(new Order
        {
            Price = 100,
            Currency = "USD",
            ReceiveCurrency = "BTC"
        });
        return View();
    }

 public async Task<dynamic> CreateOrder(Order dto, string resourcePath = "/v1/orders/")
    {
        _client.BaseAddress = new Uri(_baseUri);
        ConfigureHeaders(Signature());
        var body = new FormUrlEncodedContent(new[]
        {
            new KeyValuePair<string, string>("order_id", dto.OrderId.ToString()),
            new KeyValuePair<string, string>("price", dto.Price.ToString()),
            new KeyValuePair<string, string>("currency", dto.Currency),
            new KeyValuePair<string, string>("receive_currency", dto.ReceiveCurrency),
            new KeyValuePair<string, string>("title", dto.Title),
            new KeyValuePair<string, string>("description", dto.Description),
            new KeyValuePair<string, string>("callback_url", dto.CallbackUrl),
            new KeyValuePair<string, string>("cancel_url", dto.CancelUrl),
            new KeyValuePair<string, string>("success_url", dto.SuccessUrl)
        });
        var response = await _client.PostAsync(resourcePath, body);
        if (!response.IsSuccessStatusCode) return HttpStatusCode.BadRequest;
        var order = await response.Content.ReadAsAsync<dynamic>();
        return order;
    }

这是我的订单类:

    public int OrderId { get; set; }
    public double Price { get; set; }
    public string Currency { get; set; }
    public string ReceiveCurrency { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    public string CallbackUrl { get; set; }
    public string CancelUrl { get; set; }
    public string SuccessUrl { get; set; }

任何人都知道怎么做才能告诉我。

1 个答案:

答案 0 :(得分:0)

所以我看一下链接的github,看看请求是如何产生的,并注意到在创建中有一个沙箱布尔值。

输入后,它会重定向到不同的API

沙箱:https://api-sandbox.coingate.com/

非沙箱:https://api.coingate.com/

沙箱需要创建一个不同的帐户,这就是为什么你得到未经授权的原因,因为我猜你正在使用生产环境中的凭据。

您可以通过两种方式解决此问题:1。在沙盒环境中创建一个帐户。 2.将var cg = new Coingate.Net.Coingate(apikey, apiSecret,appId);更改为var cg = new Coingate.Net.Coingate(apikey, apiSecret,appId, false);

这可以全部找到here

关于回调网址。这可以通过以下方式轻松添加

var orders = cg.CreateOrder(new Order
{
    Price = 100,
    Currency = "USD",
    ReceiveCurrency = "BTC",
    CallbackUrl = "url here"
});