private string GetPayParapeters(WeChatPayData unifiedOrder) { WeChatPayData jsApiParam = new WeChatPayData(); jsApiParam.SetValue("appId", option.AppId); jsApiParam.SetValue("timeStamp", weChatPayApi.GenerateTimeStamp()); jsApiParam.SetValue("nonceStr", Guid.NewGuid().ToString("N").ToLower()); jsApiParam.SetValue("package", "prepay_id=" + unifiedOrder.GetValue("prepay_id")); jsApiParam.SetValue("signType", "MD5"); jsApiParam.SetValue("paySign", jsApiParam.MakeSign(option)); string parameters = jsApiParam.ToJson(); logger.LogDebug("Get jsApiParam : " + parameters); return(parameters); }
/// <summary> /// 申请退款 /// </summary> /// <param name="inputObj">提交给申请退款API的参数</param> /// <param name="timeOut">超时时间</param> /// <returns></returns> internal WeChatPayData Refund(WeChatPayData inputObj, int timeOut = 6) { string url = payHost + "/secapi/pay/refund"; //检测必填参数 if (!inputObj.IsSet("out_trade_no") && !inputObj.IsSet("transaction_id")) { throw new WeChatException("退款申请接口中,out_trade_no、transaction_id至少填一个!"); } else if (!inputObj.IsSet("out_refund_no")) { throw new WeChatException("退款申请接口中,缺少必填参数out_refund_no!"); } else if (!inputObj.IsSet("total_fee")) { throw new WeChatException("退款申请接口中,缺少必填参数total_fee!"); } else if (!inputObj.IsSet("refund_fee")) { throw new WeChatException("退款申请接口中,缺少必填参数refund_fee!"); } else if (!inputObj.IsSet("op_user_id")) { throw new WeChatException("退款申请接口中,缺少必填参数op_user_id!"); } inputObj.SetValue("appid", option.AppId); //公众账号ID inputObj.SetValue("mch_id", option.MchID); //商户号 inputObj.SetValue("nonce_str", Guid.NewGuid().ToString("N").ToLower()); //随机字符串 inputObj.SetValue("sign_type", WeChatPayData.SIGN_TYPE_MD5); //签名类型 inputObj.SetValue("sign", inputObj.MakeSign(option)); //签名 string xml = inputObj.ToXml(); logger.LogDebug("WxPayApi", "Refund request : " + xml); string response = httpService.Post(xml, url, true, timeOut);//调用HTTP通信接口提交数据到API logger.LogDebug("WxPayApi", "Refund response : " + response); //将xml格式的结果转换为对象以返回 WeChatPayData result = new WeChatPayData(); result.FromXml(response); return(result); }
/// <summary> /// 关闭订单 /// </summary> /// <param name="inputObj">提交给关闭订单API的参数</param> /// <param name="timeOut">接口超时时间</param> /// <returns></returns> internal WeChatPayData CloseOrder(WeChatPayData inputObj, int timeOut = 6) { string url = payHost + "/pay/closeorder"; //检测必填参数 if (!inputObj.IsSet("out_trade_no")) { throw new WeChatException("关闭订单接口中,out_trade_no必填!"); } inputObj.SetValue("appid", option.AppId); //公众账号ID inputObj.SetValue("mch_id", option.MchID); //商户号 inputObj.SetValue("nonce_str", Guid.NewGuid().ToString("N").ToLower()); //随机字符串 inputObj.SetValue("sign_type", WeChatPayData.SIGN_TYPE_MD5); //签名类型 inputObj.SetValue("sign", inputObj.MakeSign(option)); //签名 string xml = inputObj.ToXml(); string response = httpService.Post(xml, url, false, timeOut); WeChatPayData result = new WeChatPayData(); result.FromXml(response); return(result); }
private WeChatPayData GetWeChatPayData(string productDes, string billno, int total_fee, string ip, string tradeType, string openid = "") { WeChatPayData data = new WeChatPayData(); data.SetValue("body", productDes); data.SetValue("out_trade_no", billno); data.SetValue("total_fee", total_fee); data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss")); data.SetValue("time_expire", DateTime.Now.AddHours(25).ToString("yyyyMMddHHmmss")); data.SetValue("trade_type", tradeType); if (openid != "") { data.SetValue("openid", openid); } data.SetValue("notify_url", option.NotifyUrl); data.SetValue("appid", option.AppId); //公众账号ID data.SetValue("mch_id", option.MchID); //商户号 data.SetValue("spbill_create_ip", ip); data.SetValue("nonce_str", Guid.NewGuid().ToString("N").ToLower()); //随机字符串 data.SetValue("sign_type", WeChatPayData.SIGN_TYPE_MD5); //签名类型 //签名 data.SetValue("sign", data.MakeSign(option)); return(data); }