示例#1
0
        /// <summary>
        /// 刷卡支付
        /// </summary>
        /// <param name="authCode">扫码设备获取到的微信用户刷卡授权码</param>
        /// <returns></returns>
        public ActionResult MicroPay(string authCode)
        {
            var sp_billno = SystemTime.Now.ToString("HHmmss") + TenPayV3Util.BuildRandomStr(28);
            var nonceStr  = TenPayV3Util.GetNoncestr();

            //RequestHandler payHandler = new RequestHandler(null);

            //payHandler.SetParameter("auth_code", authCode);//授权码
            //payHandler.SetParameter("body", "test");//商品描述
            //payHandler.SetParameter("total_fee", "1");//总金额
            //payHandler.SetParameter("out_trade_no", sp_billno);//产生随机的商户订单号
            //payHandler.SetParameter("spbill_create_ip", HttpContext.UserHostAddress()?.ToString());//终端ip
            //payHandler.SetParameter("appid", TenPayV3Info.AppId);//公众账号ID
            //payHandler.SetParameter("mch_id", TenPayV3Info.MchId);//商户号
            //payHandler.SetParameter("nonce_str", nonceStr);//随机字符串

            //string sign = payHandler.CreateMd5Sign("key", TenPayV3Info.Key);
            //payHandler.SetParameter("sign", sign);//签名

            var requestData =
                new TenPayV3MicroPayRequestData(TenPayV3Info.AppId, TenPayV3Info.MchId, TenPayV3Info.Key, nonceStr, "", "test", "", "", sp_billno, "1", "", HttpContext.UserHostAddress()?.ToString(), "", authCode, "MD5");

            //var result = TenPayV3.MicroPay(payHandler.ParseXML());
            var result = TenPayV3.MicroPay(requestData);

            //此处只是完成最简单的支付功能,实际情况还需要考虑各种出错的情况,并处理错误,最后返回结果通知用户。

            //return Content(result);
            return(Content(result.ResultXml));
        }
示例#2
0
        private void MicroPayTest(string sandBoxKey, string nonceStr)
        {
            var deviceInfo = "Senparc POS 1";
            var body       = "Senparc.Weixin SDK";
            var totalFee   = 1;//金额必须符合用例要求
            var outTradeNo = SystemTime.Now.Ticks.ToString();

            string detail =
                @"{
    ""cost_price"": 1137600, 
    ""receipt_id"": ""wx123"", 
    ""goods_detail"": [
        {
            ""goods_id"": ""商品编码"",
            ""wxpay_goods_id"": ""1001"",
            ""goods_name"": """",
            ""quantity"": 1,
            ""price"": 528800
        }, 
        {
            ""goods_id"": ""商品编码"", 
            ""wxpay_goods_id"": ""1002"", 
            ""goods_name"": ""iPhone6s 32G"", 
            ""quantity"": 1, 
            ""price"": 608800
        }
    ]
}".Replace("\r", "").Replace("\n", "");

            var dataInfo = new TenPayV3MicroPayRequestData(base._appId, base._mchId, sandBoxKey,
                                                           nonceStr, deviceInfo, body, detail, null, outTradeNo, totalFee.ToString(), "CNY", "127.0.0.1",
                                                           null, null);

            var result = TenPayV3.MicroPay(dataInfo);

            Console.WriteLine(result.ResultXml);
            Assert.IsTrue(result.IsReturnCodeSuccess());

            //订单查询
            OrderQueryTest(sandBoxKey, nonceStr, result.transaction_id, result.out_trade_no);
        }