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");
        }
Example #2
0
        /// <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);
        }