標籤:get bool itunes trre log sts coding requests 串流
- public bool ValidateApplePay()
- {
-
- //用戶端post過來的參數
- string appleReceipt = Request.Form["appleReceipt"]; //蘋果內購的驗證收據
- string orderId = PayHelper.GetOrderIDByPrefix("AP"); //訂單編號
- string amount = Request.Form["amount"]; //金額
- string userId = Request.Form["userId"]; //使用者UserID
-
- // 驗證參數
- if (appleReceipt.Length < 20)
- {
- return false;
- }
-
- string strJosn = string.Format("{{\"receipt-data\":\"{0}\"}}", appleReceipt);
- // 請求驗證
- string strResult = CreatePostHttpResponse(strJosn, isSandbox);
- JObject obj = JObject.Parse(strResult);//using Newtonsoft.Json.Linq;
-
- // 判斷是否購買成功
- if (obj["status"].ToString() == "0")
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- public string CreatePostHttpResponse(string datas, bool isSandbox = false)
- {
- //正式購買地址 沙箱購買地址
- string url_buy = "https://buy.itunes.apple.com/verifyReceipt";
- string url_sandbox = "https://sandbox.itunes.apple.com/verifyReceipt";
- string url = isSandbox ? url_sandbox : url_buy;
-
- HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
- request.ProtocolVersion = HttpVersion.Version10;
- request.Method = "POST";
- request.ContentType = "application/x-www-form-urlencoded";
- byte[] data = Encoding.GetEncoding("UTF-8").GetBytes(datas.ToString());
- using (Stream stream = request.GetRequestStream())
- {
- stream.Write(data, 0, data.Length);
- }
-
- HttpWebResponse response = request.GetResponse() as HttpWebResponse;
- Stream responseStream = response.GetResponseStream(); //擷取響應的字串流
- StreamReader sr = new StreamReader(responseStream); //建立一個stream讀取流
- var str = sr.ReadToEnd();
- sr.Close();
- responseStream.Close();
- return str.ToString();
- }
蘋果內購支付對接