/// <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)); }
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); }