public void TestGetContent() { PreOrderRequest req1 = new PreOrderRequest(); req1.SendTime = DateTime.Now; req1.SendSeqID = "12345888888000"; req1.FrontUrl = "http://www.163.com"; req1.MerchantOrderDesc = "呵呵"; req1.Misc = string.Empty; //req1.GatewayType = GatewayTypes.WAP; req1.TransTimeout = DateTime.Now.AddHours(1); req1.BackUrl = "http://192.168.1.156:8080/Test/Notify"; req1.MerchantOrderCurrency = Currencys.RMB; req1.MerchantOrderAmt = 1; req1.MerchantID = "630056832596"; req1.MerchantOrderTime = DateTime.Now.AddMinutes(-5); req1.MerchantOrderID = Guid.NewGuid().ToString("N"); req1.MerchantUserID = string.Empty; req1.MobileNum = "15388157741"; req1.CarNum = string.Empty; var content1 = req1.GetContent(); Assert.IsTrue(content1 != null); }
/// <summary> /// 预订单 /// </summary> /// <param name="pChannel"></param> /// <param name="pRequest"></param> public static PreOrderResponse PreOrder(WeiXinPayChannel pChannel, PreOrderRequest pRequest) { //参数检查 if (pChannel == null) { throw new ArgumentNullException("pChannel"); } if (pRequest == null) { throw new ArgumentNullException("pRequest"); } //创建预订单 var preOrderReq = pRequest.GetContent(pChannel); //获取访问授权 var token = WeiXinPay4AppGateway.GetAccessToken(pChannel.AppID, pChannel.AppSecret); if (!token.IsSuccess) { throw new WeiXinPayException("501", string.Format("获取访问授权失败:[微信接口返回的错误码={0};错误信息={1}].", token.ErrorCode, token.ErrorMessage)); } var url = string.Format("{0}access_token={1}", API_URL_OF_PREORDER, token.Token); var rsp = WeiXinPay4AppGateway.CallAPI <PreOrderResponse>(url, preOrderReq.ToJSON()); if (rsp.IsSuccess) { return(rsp); } else { throw new WeiXinPayException("502", string.Format("预订单失败:[微信接口返回的错误码={0};错误信息={1}].", rsp.ErrorCode, rsp.ErrorMessage)); } }
private void btnOrder_Click(object sender, EventArgs e) { //创建支付通道 UnionPayChannel channel = new UnionPayChannel() { CertificateFilePassword = ConfigurationManager.AppSettings["IVREncryptCertificateFilePassword"] , CertificateFilePath = ConfigurationManager.AppSettings["IVREncryptCertificateFilePath"] , MerchantID = ConfigurationManager.AppSettings["IVRMerchantID"] , PacketEncryptKey = "654321" }; //下订单 PreOrderRequest req = new PreOrderRequest(); req.SendTime = DateTime.Now; req.SendSeqID = Guid.NewGuid().ToString("N"); req.FrontUrl = ConfigurationManager.AppSettings["IVRFrontUrl"]; //商户平台的页面,用户支付完毕后跳转的页面 req.MerchantOrderDesc = "呵呵"; req.Misc = string.Empty; req.Mode = IVRModes.Callback; req.TransTimeout = DateTime.Now.AddHours(1); req.BackUrl = ConfigurationManager.AppSettings["IVRBackUrl"]; //当用户支付完成后,支付平台回调的交易通知的页面 req.MerchantOrderCurrency = Currencys.RMB; req.MerchantOrderAmt = 1; req.MerchantID = channel.MerchantID; req.MerchantOrderTime = DateTime.Now.AddMinutes(-5); req.MerchantOrderID = Guid.NewGuid().ToString("N").Substring(0, 30); req.MerchantUserID = string.Empty; req.MobileNum = this.txtMobileNO.Text; //消费者的手机号,支付前置会将验证码发送到该手机 req.CarNum = string.Empty; //记录支付请求日志 Loggers.Debug(new DebugLogInfo() { Message = string.Format("[IVR]PreOrder Request={0}", req.GetContent()) }); //支付平台成功接收 var rsp = IVRGateway.PreOrder(channel, req); //重定向到支付页面 if (rsp.IsSuccess) { // this.Session["MerchantOrderID"] = rsp.MerchantOrderID; this.Session["MerchantOrderTime"] = rsp.MerchantOrderTime; // this.ltGotoPay.Text = "订单创建成功,请等待支付平台呼入."; this.ltGotoPay.Mode = LiteralMode.PassThrough; } }
/// <summary> /// 创建预订单 /// <remarks> /// <para>与PreOrder的区别在于,此方法返回的信息包含App客户端调用微信SDK进行支付所必须的所有信息</para> /// </remarks> /// </summary> /// <param name="pChannel"></param> /// <param name="pRequest"></param> /// <returns></returns> public static PreOrderInfo CreatePreOrder(WeiXinPayChannel pChannel, PreOrderRequest pRequest) { //参数检查 if (pChannel == null) { throw new ArgumentNullException("pChannel"); } if (pRequest == null) { throw new ArgumentNullException("pRequest"); } //创建预订单 var preOrderReq = pRequest.GetContent(pChannel); //获取访问授权 var token = WeiXinPay4AppGateway.GetAccessToken(pChannel.AppID, pChannel.AppSecret); if (!token.IsSuccess) { throw new WeiXinPayException("501", string.Format("获取访问授权失败:[微信接口返回的错误码={0};错误信息={1}].", token.ErrorCode, token.ErrorMessage)); } var url = string.Format("{0}access_token={1}", API_URL_OF_PREORDER, token.Token); var rsp = WeiXinPay4AppGateway.CallAPI <PreOrderResponse>(url, preOrderReq.ToJSON()); if (!rsp.IsSuccess) { throw new WeiXinPayException("502", string.Format("预订单失败:[微信接口返回的错误码={0};错误信息={1}].", rsp.ErrorCode, rsp.ErrorMessage)); } // PreOrderInfo rtn = new PreOrderInfo(); rtn.AppID = pChannel.AppID; rtn.NonceStr = preOrderReq.NonceStr; rtn.PartnerID = pChannel.ParnterID; rtn.PreOrderID = rsp.PrePayID; rtn.TimeStamp = preOrderReq.TimeStamp; rtn.OrderSign = preOrderReq.Sign; // return(rtn); }