public static object paymentProcess(string TradeAmount, string payment) { DateTime TradeDate = DateTime.Now; #region 執行ECPay的Apple Pay授權API //設定訂單交易參數 string _MerchantID = "2000132"; //綠界提供給您的特店編號 string _MerchantTradeNo = TradeDate.ToString("yyyyMMddHHmmssfff"); //您此筆訂單交易編號 string _MerchantTradeDate = TradeDate.ToString("yyyy/MM/dd HH:mm:ss"); //您此筆訂單的交易時間 string _TradeAmount = TradeAmount; //您此筆訂單的交易總金額 string _CurrencyCode = "TWD"; string _ItemName = "手機20元X2#隨身碟60元X1"; //您該筆商品的描述 string _PlatformID = string.Empty; string _TradeDesc = "ecpay商城購物"; //您該筆訂單的描述 string _TradeType = "1"; //您該筆訂單的交易來源 1:In App 2:On the Web #region 產生檢查碼 string RealMerchantID = (string.IsNullOrEmpty(_PlatformID) ? _MerchantID : _PlatformID); string HashKey = ConfigurationManager.AppSettings[string.Format("{0}_HashKey", RealMerchantID)].ToString(); //綠界提供給您的Hash Key string HashIV = ConfigurationManager.AppSettings[string.Format("{0}_HashIV", RealMerchantID)].ToString(); //綠界提供給您的Hash IV Dictionary <string, string> postData = new Dictionary <string, string>(); postData.Add("MerchantID", _MerchantID); postData.Add("MerchantTradeNo", _MerchantTradeNo); postData.Add("MerchantTradeDate", _MerchantTradeDate); postData.Add("TotalAmount", _TradeAmount); postData.Add("currencyCode", _CurrencyCode); postData.Add("ItemName", _ItemName); postData.Add("PlatformID", _PlatformID); postData.Add("TradeDesc", _TradeDesc); postData.Add("TradeType", _TradeType); string _CheckMacValue = Common.GetCheckMacValue(postData, HashKey, HashIV); postData.Add("CheckMacValue", _CheckMacValue); #endregion #region 送出授權 //PaymentToken進行AES加密,此欄位不加入檢查碼計算 string _PaymentToken = Common.AES_Encrypt(payment, HashKey, HashIV); _PaymentToken = HttpUtility.UrlEncode(_PaymentToken); postData.Add("PaymentToken", _PaymentToken); //DoRequest string strPost = string.Empty, receiveData = string.Empty, requestUrl = string.Empty, ReturnData = string.Empty; foreach (KeyValuePair <string, string> kvp in postData) { if (strPost.Equals(string.Empty)) { strPost = string.Format("{0}={1}", kvp.Key, kvp.Value); } else { strPost += string.Format("&{0}={1}", kvp.Key, kvp.Value); } } requestUrl = "https://Payment-stage.ecpay.com.tw/ApplePay/CreateServerOrder/V2"; //您要呼叫的服務位址 try { receiveData = Common.SendRequest(requestUrl, strPost, "application/x-www-form-urlencoded", 0); } catch (Exception ex) { receiveData = string.Format(@"{{ ""RtnCode"":""0"",""RtnMsg"":""{0}"" }}", ex.Message); } finally { ReturnData = string.Format(@"{{ ""ReturnData"":{0} }}", receiveData); } #endregion #endregion /* 將授權結果回應至Client端 */ return(new JavaScriptSerializer().DeserializeObject(ReturnData)); }