예제 #1
0
        /// <summary>
        /// 刷卡支付
        /// </summary>
        /// <param name="authCode">扫码设备获取到的微信用户刷卡授权码</param>
        /// <returns></returns>
        public ActionResult MicroPay(string authCode)
        {
            RequestHandler payHandler = new RequestHandler(null);

            var sp_billno = SystemTime.Now.ToString("HHmmss") + TenPayV3Util.BuildRandomStr(28);
            var nonceStr  = TenPayV3Util.GetNoncestr();

            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 result = TenPayV3.MicroPay(payHandler.ParseXML());

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

            return(Content(result));
        }
예제 #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);
        }