Пример #1
0
        public void DelivernotifyTest()
        {
            var result = WeixinPay.Delivernotify("[appId]", "[openId]", "[transId]", "[out_Trade_No]", "[deliver_TimesTamp]", "[deliver_Status]", "[deliver_Msg]", "[app_Signature]", "sha1");

            Console.Write(result);
            Assert.IsNotNull(result);
        }
Пример #2
0
        public void OrderqueryTest()
        {
            var result = WeixinPay.Orderquery("[appId]", "[package]", "[timesTamp]", "[app_Signature]", "[sign_Method]");

            Console.Write(result);
            Assert.IsNotNull(result);
        }
Пример #3
0
        public void NativePayTest()
        {
            var result = WeixinPay.NativePay("[appId]", "[timesTamp]", "[nonceStr]", "[productId]", "[sign]");

            Console.Write(result);
            Assert.IsNotNull(result);
        }
Пример #4
0
        /// <summary>
        /// 统一下单
        /// </summary>
        /// <param name="openid"></param>
        /// <param name="appcode"></param>
        /// <param name="seedName"></param>
        /// <param name="notifyUrl"></param>
        /// <param name="weixin"></param>
        /// <returns></returns>
        public weixin_jsapi_pay GetPayParaData(string openid, string appcode, string seedName, string notifyUrl, weixin_list weixin)
        {
            //微信公众号统一下单 (需要将数据库weixin的信息补全)
            WeixinPay weixinPay = new WeixinPay(System.Web.HttpContext.Current, weixin.appid, weixin.appsecret, weixin.pay_mch_id, weixin.pay_partner_key);
            //string payNumber = Common.Orderform.Orderform.getNewPayNumer(orderform.uid.ToString());
            string payNumber = "";
            //微信支付,统一下单(与微信支付订单一样)
            weixin_unified_order unifiedOrder = new weixin_unified_order();
            //int total_fee = int.Parse(((orderform.money + orderform.freight) * 100).To<double>().ToString("F0"));
            int total_fee = 0;

            unifiedOrder.nonce_str        = Sys.getRandomCode(26);
            unifiedOrder.body             = seedName + "(" + appcode + "-Applet)";
            unifiedOrder.out_trade_no     = payNumber;//商户单号使用支付单号
            unifiedOrder.total_fee        = total_fee;
            unifiedOrder.spbill_create_ip = Util.GetUserIp();
            unifiedOrder.notify_url       = notifyUrl; //回调
            unifiedOrder.trade_type       = "JSAPI";
            unifiedOrder.openid           = openid;

            //获得统一下单返回的支付单信息
            weixin_unified_order_return unifiedOrderReturn = weixinPay.UnifiedOrder(unifiedOrder);

            LogHelper.Info("统一下单返回的支付单信息:" + Newtonsoft.Json.JsonConvert.SerializeObject(unifiedOrderReturn));
            if ("SUCCESS".Equals(unifiedOrderReturn.return_code))
            {
                //准备获取支付信息的签名参数
                Hashtable parameter = new Hashtable();
                parameter.Add("appId", unifiedOrderReturn.appid);
                parameter.Add("timeStamp", Util.getLongTime().ToString());
                parameter.Add("nonceStr", unifiedOrderReturn.nonce_str);
                parameter.Add("package", "prepay_id=" + unifiedOrderReturn.prepay_id);
                parameter.Add("signType", "MD5");
                string           paysign       = weixinPay.Sign(parameter);
                weixin_jsapi_pay weixinPayInfo = new weixin_jsapi_pay()
                {
                    timestamp = Util.getLongTime(),
                    nonceStr  = unifiedOrderReturn.nonce_str,
                    package   = "prepay_id=" + unifiedOrderReturn.prepay_id,
                    signType  = "MD5",
                    paySign   = paysign,
                    is_pay    = false
                };
                LogHelper.Info("获得了统一下单数据:" + Newtonsoft.Json.JsonConvert.SerializeObject(weixinPayInfo));

                return(weixinPayInfo);
            }
            else
            {
                ////删除订单
                //orderform.isdelete = 1;
                //orderform.remarks = "小程序统一下单失败,自动删除";
                //db.Update("orderform", orderform, "id=" + orderform_id);
            }
            return(null);
        }
Пример #5
0
        public string FastBuyPayReceive()
        {
            HttpRequest       request   = System.Web.HttpContext.Current.Request;
            weixin_pay_notify payNotify = new weixin_pay_notify();

            try
            {
                payNotify = WeixinPay.getPayNotify(request);
                if ("SUCCESS".Equals(payNotify.result_code))
                {
                    //BaseBLL<pay_record> payRecordBll = new BaseBLL<pay_record>();
                    //pay_record payRecord = payRecordBll.Find(x => x.pay_number == payNotify.out_trade_no);
                    //if (payRecord != null)
                    //{
                    //    //标记支付记录回调成功
                    //    double notify_money = double.Parse(payNotify.total_fee.ToString()) / 100;
                    //payRecord.notify_money = notify_money;
                    //payRecord.pay_success = 1;
                    //payRecord.transaction_id = payNotify.transaction_id;//微信支付订单号
                    //payRecordBll.Update(payRecord);
                    //Orderform.UpdateStatusPayByUnionnumber(payRecord.unionnumber);
                    //}
                    //else
                    //{
                    //    LogHelper.Error("未找到原始支付记录,无法回写支付状态,paynotifyvo.out_trade_no=" + payNotify.out_trade_no + "!");
                    //}
                }
                else
                {
                    LogHelper.Error("return_code = " + payNotify.result_code);
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex.Message);
            }
            string ret = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";

            LogHelper.Info("FastBuyPayReceive return:" + ret);
            HttpContext.Current.Response.Write(ret);
            HttpContext.Current.Response.End();
            return(ret);
        }