public void LoadOrder(PaymentScreen ps) { double queueTotal = 0; foreach (KeyValuePair <MenuItem, int> order in currentOrder) { //set name, quantity and price of drinks in order queue //order.Key.name is the name of the item //orderTray[order.Key] is price per item string name = order.Key.name; int item_quantity = order.Value; double price = order.Key.price * order.Value; queueTotal += order.Key.price * order.Value; paymentItem curItem = new paymentItem(order, name, item_quantity, price); curItem.Width = 600; curItem.Margin = new System.Windows.Thickness(0); curItem.item_name.FontSize = 18; ps.sp_order.Children.Add(curItem); //update order queue total } ps.subVal.Content = "$" + queueTotal.ToString("F"); ps.gstVal.Content = "$" + (queueTotal * .05).ToString("F"); ps.totalVal.Content = "$" + (queueTotal * 1.05).ToString("F"); }
/// <summary> /// /// </summary> /// <param name="tokenId"></param> /// <param name="sessionId"></param> /// <param name="orderid"></param> /// <param name="cardno"></param> /// <param name="cardpwd"></param> /// <param name="typeId"></param> /// <param name="cardvalue"></param> /// <returns></returns> public b2CPaymentResponse Payment(string tokenId, string sessionId, string orderid, string cardno, string cardpwd, int typeId, int cardvalue) { var channel = GetChannelInfo(typeId, cardno); sender send = new sender(); send.senderId = SenderId; service ser = new service(); ser.serviceCode = "B2CPayment"; ser.version = "V4.1.1.1.1"; header head = new header(); head.service = ser; head.charset = "UTF-8"; //网关跟踪号, 保证唯一 head.traceNo = orderid; head.sender = send; head.sendTime = DateTime.Now.ToString("yyyyMMddhhmmss"); b2COrder ord = new b2COrder(); ord.orderAmoumt = cardvalue.ToString(); ord.orderType = "OT001"; ord.transNo = orderid; paymentItem ipitem = new paymentItem(); ipitem.key = "PAYER_IP"; ipitem.value = "127.0.0.1"; /* * 游戏卡:卡号_密码_面值@@卡号_密码_面值, 多卡用@@分隔 * 盛付通卡:卡号_密码@@卡号_密码, 多卡用@@分隔 */ paymentItem carditem = new paymentItem(); carditem.key = "CARD_INFO"; //carditem.value = "2013091100005018_111111_10@@2013091100005019_111111_10" if (channel.PayChannel == "03" || channel.PayChannel == "31" || channel.PayChannel == "42") { carditem.value = string.Format("{0}_{1}", cardno, cardpwd); } else { carditem.value = string.Format("{0}_{1}_{2}", cardno, cardpwd, cardvalue); } paymentItem[] paymentItems = new paymentItem[2] { ipitem, carditem }; /* #region 游戏卡 * b2CPayment payment = new b2CPayment(); * //支付渠道, (商户根据实际情况自行更改), 具体代码含义详见文档 * payment.paymentType = ""; * payment.instCode = ""; * payment.payChannel = "61"; * payment.paymentItems = paymentItems; #endregion * */ #region 盛付通卡 b2CPayment payment = new b2CPayment(); //支付渠道, (商户根据实际情况自行更改), 具体代码含义详见文档 payment.paymentType = channel.PaymentType; payment.instCode = channel.InstCode; payment.payChannel = channel.PayChannel; payment.paymentItems = paymentItems; #endregion extension ext = new extension(); ext.ext1 = ""; ext.ext2 = ""; signature sig = new signature(); sig.signMsg = ""; sig.signType = "MD5"; b2CPayer payer = new b2CPayer(); payer.ptId = ""; payer.ptIdType = memberIdType.PT_ID; payer.sdId = ""; payer.memberId = ""; payer.accountId = ""; payer.accountType = ""; payer.payableAmount = ""; payer.payableFee = ""; b2CPayee payee = new b2CPayee(); payee.ptId = ""; payee.sdId = ""; payee.memberId = ""; payee.accountId = ""; payee.accountType = ""; payee.receivableAmount = ""; payee.receivableFee = ""; b2CPaymentRequest request = new b2CPaymentRequest(); request.header = head; request.order = ord; request.payer = payer; request.payee = payee; request.payment = payment; request.tokenId = tokenId; request.sessionId = sessionId;// Guid.NewGuid().ToString("N"); request.extension = ext; request.signature = sig; //签名字符串拼接 string sign = ser.serviceCode + ser.version + head.charset + head.traceNo + send.senderId + head.sendTime + ord.transNo + ord.orderAmoumt + ord.orderType + payer.ptId + payer.ptIdType + payer.sdId + payer.memberId + payer.accountId + payer.accountType + payer.accountType + payer.payableAmount + payer.payableFee + payee.ptId + payee.sdId + payee.memberId + payee.accountId + payee.accountType + payee.accountType + payee.receivableAmount + payee.receivableFee + payment.paymentType + payment.instCode + payment.payChannel; for (int i = 0; i < paymentItems.Length; i++) { sign += paymentItems[i].key + paymentItems[i].value; } sign += request.tokenId + request.sessionId + ext.ext1 + ext.ext2 + sig.signType + MerchantKey; sig.signMsg = Cryptography.MD5(sign); request.signature = sig; try { PaymentAPIExporterService service = new PaymentAPIExporterService(); b2CPaymentResponse response = service.processB2CPay(request); //viviLib.Logging.LogHelper.Write("pay" + response.transStatus); return(response); } catch (Exception exception) { //viviLib.Logging.LogHelper.Write("pay exception" + exception.Message); viviLib.ExceptionHandling.ExceptionHandler.HandleException(exception); } return(null); }