RestSharp

using RestSharp;
using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Text;
using UnityEngine;
using UnityEngine.UI;
/*
 必须先获取令牌得到Token才能进行其他操作

     
     
     */
 /// <summary>
 /// Paypal支付相关方法
 /// </summary>
public class PostHttp : MonoBehaviour {

	// Use this for initialization
	void Start () {
        string body = string.Format("\"id\":\"{0}\",\"description\":\"{1}\",\"amount\":\"{2}\",\"price\":\"{3}\",\"currency\":\"{4}\"", 1108662629729079296, "上山打老虎", 3, 0.2, "USD");
        body = "{" + body + "}";

        Debug.Log(body);
        Debug.Log("{\"id\":\"1108662629729079296\",\"description\":\"上山打老虎\",\"amount\":\"3\",\"price\":\"0.2\",\"currency\":\"USD\"}");
    }

    /*1:充值接口

  请求:
  Url:          http://domain/v1/recharge
  Method:      POST
  请求体:      {
“userId”:””,      //游戏账户ID
               “id”:””,          //充值策略ID
               “amount”:””,     //游戏积分数量,指的是该策略的积分数量
               “price”:””,        //策略单价,指的是充值该策略一次的钱
               “currency”:”USD”,     //货币单位,目前仅支持USD
               “rechargeNumber”:””,  //充值数量,指的是充值该策略多少次
               }
  响应:
  状态:       成功200 , 其它失败
  ContentType:  text/plain
  响应体:     paypal支付url,在浏览器中打开开始支付
         */
    /// <summary>
    /// 充值接口方法
    /// </summary>
    /// <param name="userId">游戏账户ID</param>
    /// <param name="id">充值策略ID</param>
    /// <param name="amount">游戏积分数量,指的是该策略的积分数量</param>
    /// <param name="price">策略单价,指的是充值该策略一次的钱</param>
    /// <param name="currency">货币单位,目前仅支持USD</param>
    /// <param name="rechargeNumber">充值数量,指的是充值该策略多少次</param>
    private void PayPalClick(string userId,string id,string amount,string price, string rechargeNumber, string currency="USD")
    {

        //获取令牌
        string token = GetToken();
        //创建策略
        var client = new RestClient("http://xxx.xx.xx.33:8080/v1/recharge");
        var request = new RestRequest(Method.POST);
        request.AddHeader("cache-control", "no-cache");
        request.AddHeader("Authorization", "bearer " + token);
        request.AddHeader("Content-Type", "text/plain");
        //先去掉头尾的括号待会再加上
        string body = string.Format("\n\t\"userId\": \"{0}\",\n    \"id\": \"{1}\",\n    \"amount\": \"{2}\",\n    \"price\": \"{3}\",\n    \"currency\": \"{4}\",\n    \"rechargeNumber\": \"{5}\"\n",
            userId,id,amount,price, currency, rechargeNumber);
        body = "{" + body + "}";
        /*
        请求体: {
               “userId”:””,      //游戏账户ID
               “id”:””,          //充值策略ID
               “amount”:””,     //游戏积分数量,指的是该策略的积分数量
               “price”:””,        //策略单价,指的是充值该策略一次的钱
               “currency”:”USD”,     //货币单位,目前仅支持USD
               “rechargeNumber”:””,  //充值数量,指的是充值该策略多少次
               }
         */

        request.AddParameter("undefined", body, ParameterType.RequestBody);
        IRestResponse response = client.Execute(request);

    }

    /// <summary>
    /// 充值接口方法直接按钮调用
    /// </summary>
    public void PayPalClick()
    {

    }


    /* 2:充值策略接口    
      请求:
      Url:          http://domain/v1/rechargePolicy
      Method:      POST
      请求体:      {
    “description”:””,      //策略描述
                   “amount”:””,     //游戏积分数量,指的是该策略的积分数量
                   “price”:””,        //策略单价,指的是充值该策略一次的钱
                   “currency”:”USD”,     //货币单位,目前仅支持USD 
                   }
      响应:
      状态:       成功200 , 其它失败
      ContentType:  text/plain
      响应体:     新建策略的ID*/
    /// <summary>
    /// 创建充值策略接口
    /// </summary>
    /// <param name="description">策略描述</param>
    /// <param name="amount">游戏积分数量,指的是该策略的积分数量</param>
    /// <param name="price">策略单价,指的是充值该策略一次的钱</param>
    /// <param name="currency">货币单位,目前仅支持USD </param>
    private void CreateClick(string description,string amount,string price,string currency = "USD")
    {
        //获取令牌
        string token = GetToken();
        //创建策略
        var client = new RestClient("http://xxx.xx.1xx.33:8080/v1/rechargePolicy");
        var request = new RestRequest(Method.POST);
        request.AddHeader("cache-control", "no-cache");
        request.AddHeader("Authorization", "bearer " + token);
        request.AddHeader("Content-Type", "text/plain");

        string body = string.Format("\n\t\"description\": \"{0}\",\n    \"amount\": \"{1}\",\n    \"price\": \"{2}\",\n    \"currency\": \"{3}\"\n",description,amount,price,currency);
        body = "{" + body + "}";
        request.AddParameter("undefined", body, ParameterType.RequestBody);
        IRestResponse response = client.Execute(request);
        Debug.Log(response.Content);
    }

    /// <summary>
    /// 创建充值策略接口直接按钮调用
    /// </summary>
    public void CreateClick()
    {

    }

    /* 3:更新策略接口

  请求:
  Url:          http://domain/v1/rechargePolicy
  Method:      PATCH
  请求体:      {
               “id”:””,            //要更新的策略的ID
“description”:””,      //策略描述
               “amount”:””,     //游戏积分数量,指的是该策略的积分数量
               “price”:””,        //策略单价,指的是充值该策略一次的钱
               “currency”:”USD”     //货币单位,目前仅支持USD 
               }
  响应:
  状态:       成功200 , 其它失败
  响应体:     空
  */
    /// <summary>
    /// 更新策略接口方法参数调用
    /// </summary>
    /// <param name="id">要更新的策略的ID</param>
    /// <param name="description">策略描述</param>
    /// <param name="amount">游戏积分数量,指的是该策略的积分数量</param>
    /// <param name="price">策略单价,指的是充值该策略一次的钱</param>
    /// <param name="currency">货币单位,目前仅支持USD</param>
    private void UpdateClick(string id,string description, string amount, string price, string currency = "USD")
    {
        //获取令牌
        string token = GetToken();
        //更新策略
        var client = new RestClient("http://xxx.xx.xx.xx:8080/v1/rechargePolicy");
        var request = new RestRequest(Method.PATCH);
        request.AddHeader("cache-control", "no-cache");
        request.AddHeader("Content-Type", "application/json");
        request.AddHeader("Authorization", "bearer " + token);

        string body = string.Format("\"id\":\"{0}\",\"description\":\"{1}\",\"amount\":\"{2}\",\"price\":\"{3}\",\"currency\":\"{4}\"",id, description, amount, price, currency);
        body = "{" + body + "}";

        //转义字符\"    双引号
        request.AddParameter("undefined", "{\"id\":\"1108662629729079296\",\"description\":\"上山打老虎\",\"amount\":\"3\",\"price\":\"0.2\",\"currency\":\"USD\"}", ParameterType.RequestBody);
     
        IRestResponse response = client.Execute(request);
        Debug.Log(response.Content);

    }

    /// <summary>
    /// 更新策略接口方法
    /// </summary>
    public void UpdateClick()
    {

    }

    /* 4:删除策略接口
  请求:
  Url:          http://domain/v1/rechargePolicy/{id}
                                   (路径变量,策略ID)
  Method:      DELETE
  请求体:      空
  响应:
  状态:       成功200 , 其它失败
  响应体:     空
*/
    /// <summary>
    /// 删除策略接口方法
    /// </summary>
    /// <param name="tokenId">要删除的策略id</param>
    private void DeleteClick(string tokenId)
    {
        //获取令牌
        string token = GetToken();
        //删除枚举
        string url = string.Format("http://xxx.xx.xx.xx:8080/v1/rechargePolicy/{0}", tokenId);
        var client = new RestClient(url);
        var request = new RestRequest(Method.DELETE);
        request.AddHeader("Authorization", "bearer " + token);
        IRestResponse response = client.Execute(request);
        Debug.Log(response.Content);

    }
    /// <summary>
    /// 封装删除策略接口方法
    /// </summary>
    public void DeleteClick()
    {

    }

    /* 5:枚举策略接口

  请求:
  Url:          http://domain/v1/rechargePolicy
  Method:      GET
  请求体:      空
  响应:
  状态:       成功200 , 其它失败
  ContentType:  application/json
  响应体:     [{
               “id”:””,
“description”:””,
               “amount”:””,
               “price”:””,
               “currency”:”USD” 
               },…]
*/
    /// <summary>
    /// 枚举策略接口
    /// </summary>
    public void AllTokenClick()
    {
        //获取令牌
        string token = GetToken();
         //策略枚举
         var client = new RestClient("http://xx.xx.xx.33:8080/v1/rechargePolicy");
        var request = new RestRequest(Method.GET);
        request.AddHeader("Content-Type", "application/json");
        request.AddHeader("Authorization", "bearer "+ token);
        IRestResponse response = client.Execute(request);
        Debug.Log(response.Content);
    }

  
    /* 6:查询单个策略接口

  请求:
  Url:          http://domain/v1/rechargePolicy/{id}
                                   (路径变量,策略ID)
Method:      GET
  请求体:      空
  响应:
  状态:       成功200 , 其它失败
  ContentType:  application/json
  响应体:     {
               “id”:””,
“description”:””,
               “amount”:””,
               “price”:””,
               “currency”:”USD” 
               }
*/
/// <summary>
/// 查询单个策略接口方法
/// </summary>
/// <param name="tokenId">指定查询的策略id</param>
    public void SelectClick(string tokenId)
    {
        //获取令牌
        string token = GetToken();
        //策略枚举
        string url = string.Format("http://xx.xx5.xx.33:8080/v1/rechargePolicy/{0}", tokenId);
        var client = new RestClient(url);
        var request = new RestRequest(Method.GET);
        request.AddHeader("Content-Type", "application/json");
        request.AddHeader("Authorization", "bearer " + token);
        IRestResponse response = client.Execute(request);
        Debug.Log(response.Content);

    }

    /// <summary>
    /// 封装查询单个策略接口
    /// </summary>
    public void SelectClick()
    {

    }

    /// <summary>
    /// 获取令牌   所有操作的基础
    /// </summary>
    public string GetToken()
    {
        var client = new RestClient("http://xxx.x5.xx.33/api/oauth/oauth/token");
        var request = new RestRequest(Method.POST);
        request.AddHeader("cache-control", "no-cache");
        request.AddHeader("Authorization", "Basic c3lzdGVtX3NlcnZpY2U6c3lzdGVtX3lmdGtfMTIzNDU2");
        request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
        request.AddHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
        request.AddParameter("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW", "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"grant_type\"\r\n\r\npassword\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"username\"\r\n\r\nyingfuzp@126.com\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"password\"\r\n\r\nyftk123456\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--", ParameterType.RequestBody);
        IRestResponse response = client.Execute(request);
        Debug.Log(response.Content);
        TokenInfo tokenInfo = JsonUtility.FromJson<TokenInfo>(response.Content);//自带解析json
        Debug.Log(tokenInfo.access_token);

        return tokenInfo.access_token;


    }



    // Update is called once per frame
    void Update () {
		
	}
}
/*
申请令牌返回结果
       {"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NTM1MDQxNzIsInVzZXJfbmFtZSI6IjExMDc5MjMyNjg4NDI1NTMzNDUiLCJhdXRob3JpdGllcyI6WyJST0xFX01BTkFHRV9aSUxMSU9OQUlSRSJdLCJqdGkiOiI3OWViMzYwMi1jYzRmLTQ4ZjYtYmZiYy02OWRhMGI5YTYwZDYiLCJjbGllbnRfaWQiOiJzeXN0ZW1fc2VydmljZSIsInNjb3BlIjpbInNlcnZlciJdfQ.iOkDeQzM-aqnOV25bolhZ2-ziVco3qzsM4ZrQ-Iy43o",
       "token_type":"bearer",
       "refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiIxMTA3OTIzMjY4ODQyNTUzMzQ1Iiwic2NvcGUiOlsic2VydmVyIl0sImF0aSI6Ijc5ZWIzNjAyLWNjNGYtNDhmNi1iZmJjLTY5ZGEwYjlhNjBkNiIsImV4cCI6MTU1MzUwNDE3MiwiYXV0aG9yaXRpZXMiOlsiUk9MRV9NQU5BR0VfWklMTElPTkFJUkUiXSwianRpIjoiYjczMzhmNzEtZmM5Mi00M2RhLWE0NDYtY2IyZGY2MGNmZWQzIiwiY2xpZW50X2lkIjoic3lzdGVtX3NlcnZpY2UifQ.ZaAdt4-5xg4DeGAnSuYk536cFA4eahzMcqngL5OGMGk",
       "expires_in":3599,
       "scope":"server",
       "jti":"79eb3602-cc4f-48f6-bfbc-69da0b9a60d6"}
UnityEngine.Debug:Log(Object)
       */

public class TokenInfo
{
    public string access_token;
    public string token_type;
    public string refresh_token;
    public string expires_in;
    public string scope;
    public string jti;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值