using SinochemCloudClient.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Http; using System.Windows.Forms; namespace CloudSimulator.Controllers { public class PaymentCloudController : ApiController { CloudForm cloudForm = (CloudForm)Application.OpenForms["CloudForm"]; double cardBalance; public PaymentCloudController() { cardBalance = cloudForm.GetCardBalanceThreadSafe(); } [Route("test")] public int[] GetTestValues() { return new int[] { 1, 2, 3 }; } [Route("queryMemberInfo")] [HttpPost] public BalanceInquiryResponse BalanceInquiry([FromBody] BalanceInquiryRequest request) { cloudForm.AppendTextThreadSafe(Environment.NewLine + "BalanceInquiry request:"); cloudForm.AppendTextThreadSafe(request.ToString()); BalanceInquiryResponse response = new BalanceInquiryResponse { code = ResponseBase.SuccessResponse, result = new BalanceInquiryResponse.Data { amount = cardBalance, user_Name = "小化", car_Number = "京A88888", gun = "1", token = "test_token", ttc = "test ttc", } }; cloudForm.AppendTextThreadSafe(Environment.NewLine + "BalanceInquiry response:"); cloudForm.AppendTextThreadSafe(response.ToString()); return response; } [Route("pay")] [HttpPost] public PaymentResponse Payment([FromBody] PaymentRequest request) { cloudForm.AppendTextThreadSafe(Environment.NewLine + "Payment request:"); cloudForm.AppendTextThreadSafe(request.ToString()); PaymentResponse response = new PaymentResponse { code = ResponseBase.SuccessResponse, result = new PaymentResponse.Data { amount = cardBalance - request.amount, real_Pay_Amount = request.amount, bill_ID = "160000008689", shift_ID = "3", business_Date = DateTime.Now.ToString(), card_No = "1234567890123456789", cardNo_Hide = "123456*********6789", invoiceUrl = "http://nnfp.jss.com.cn/invoice/scan/k.action?jskpCode=5P9XB8&orderno=20180618174615501806&expiretime=1531907175512", } }; cloudForm.AppendTextThreadSafe(Environment.NewLine + "Payment response:"); cloudForm.AppendTextThreadSafe(response.ToString()); return response; } [Route("queryOrder")] [HttpPost] public TrxStatusInquiryResponse TrxStatusInquiry([FromBody] TrxStatusInquiryRequest request) { cloudForm.AppendTextThreadSafe(Environment.NewLine + "TrxStatusInquiry request:"); cloudForm.AppendTextThreadSafe(request.ToString()); TrxStatusInquiryResponse response = new TrxStatusInquiryResponse { code = ResponseBase.SuccessResponse, result = new TrxStatusInquiryResponse.Data { amount = cardBalance - request.pre_Amount, real_Pay_Amount = request.pre_Amount } }; cloudForm.AppendTextThreadSafe(Environment.NewLine + "TrxStatusInquiry response:"); cloudForm.AppendTextThreadSafe(response.ToString()); return response; } [Route("cancelOrder")] [HttpPost] public RefundResponse Refund([FromBody] RefundRequest request) { cloudForm.AppendTextThreadSafe(Environment.NewLine + "Refund request:"); cloudForm.AppendTextThreadSafe(request.ToString()); RefundResponse response = new RefundResponse { code = ResponseBase.SuccessResponse }; cloudForm.AppendTextThreadSafe(Environment.NewLine + "Refund response:"); cloudForm.AppendTextThreadSafe(response.ToString()); return response; } } }