zoukankan      html  css  js  c++  java
  • 苹果内购支付对接

    1. public bool ValidateApplePay()  
    2.        {  
    3.                
    4.            //客户端post过来的参数  
    5.            string appleReceipt = Request.Form["appleReceipt"]; //苹果内购的验证收据  
    6.            string orderId = PayHelper.GetOrderIDByPrefix("AP");  //订单编号  
    7.            string amount = Request.Form["amount"];             //金额  
    8.            string userId = Request.Form["userId"];             //用户UserID  
    9.              
    10.            // 验证参数  
    11.            if (appleReceipt.Length < 20)  
    12.            {  
    13.                return false;  
    14.            }  
    15.   
    16.            string strJosn = string.Format("{{"receipt-data":"{0}"}}", appleReceipt);  
    17.            // 请求验证  
    18.            string strResult = CreatePostHttpResponse(strJosn, isSandbox);  
    19.            JObject obj = JObject.Parse(strResult);//using Newtonsoft.Json.Linq;  
    20.   
    21.            // 判断是否购买成功  
    22.            if (obj["status"].ToString() == "0")  
    23.            {  
    24.                return true;  
    25.            }  
    26.            else  
    27.            {  
    28.                return false;  
    29.            }  
    30.        }  
    31.    public string CreatePostHttpResponse(string datas, bool isSandbox = false)  
    32.        {  
    33.            //正式购买地址 沙盒购买地址  
    34.            string url_buy = "https://buy.itunes.apple.com/verifyReceipt";  
    35.            string url_sandbox = "https://sandbox.itunes.apple.com/verifyReceipt";  
    36.            string url = isSandbox ? url_sandbox : url_buy;  
    37.   
    38.            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;  
    39.            request.ProtocolVersion = HttpVersion.Version10;  
    40.            request.Method = "POST";  
    41.            request.ContentType = "application/x-www-form-urlencoded";  
    42.            byte[] data = Encoding.GetEncoding("UTF-8").GetBytes(datas.ToString());  
    43.            using (Stream stream = request.GetRequestStream())  
    44.            {  
    45.                stream.Write(data, 0, data.Length);  
    46.            }  
    47.   
    48.            HttpWebResponse response = request.GetResponse() as HttpWebResponse;  
    49.            Stream responseStream = response.GetResponseStream();   //获取响应的字符串流  
    50.            StreamReader sr = new StreamReader(responseStream); //创建一个stream读取流  
    51.            var str = sr.ReadToEnd();  
    52.            sr.Close();  
    53.            responseStream.Close();  
    54.            return str.ToString();  
    55.        }  
  • 相关阅读:
    C# Thread.Sleep 卡死的问题解决方法
    GridView多行显示 TableAdapter没有Update 问题
    python zlib 压缩 解压 文件夹
    17、【Python】mac安装多个版本的python
    18、【常见算法】二叉树的遍历
    29、【C++基础】内存泄露
    17、【常见算法】topN问题
    16、【常见算法】查找斐波那契数列的第N项
    15、【常见算法】实现sqrt函数
    14、【常见算法】数组分组排序
  • 原文地址:https://www.cnblogs.com/morpheusliu/p/8042763.html
Copyright © 2011-2022 走看看