Ejemplo n.º 1
0
        /// <summary>
        /// JSAPI下单接口
        /// <para>在微信支付服务后台生成JSAPI预支付交易单,返回预支付交易会话标识</para>
        /// </summary>
        /// <param name="data">微信支付需要POST的Data数据</param>
        /// <param name="timeOut">超时时间,单位为ms </param>
        /// <returns></returns>
        public async Task <JsApiReturnJson> JsApiAsync(TransactionsRequestData data, int timeOut = Config.TIME_OUT)
        {
            var url = ReurnPayApiUrl("https://api.mch.weixin.qq.com/{0}v3/pay/transactions/jsapi");
            TenPayApiRequest tenPayApiRequest = new(_tenpayV3Setting);

            return(await tenPayApiRequest.RequestAsync <JsApiReturnJson>(url, data, timeOut));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// JSAPI下单接口
        /// <para>在微信支付服务后台生成JSAPI预支付交易单,返回预支付交易会话标识</para>
        /// </summary>
        /// <param name="data">微信支付需要POST的Data数据</param>
        /// <param name="timeOut">超时时间,单位为ms </param>
        /// <returns></returns>
        public async Task <JsApiReturnJson> JsApiAsync(TransactionsRequestData data, int timeOut = Config.TIME_OUT)
        {
            var url = ReurnPayApiUrl(Senparc.Weixin.Config.TenPayV3Host + "/{0}v3/pay/transactions/jsapi");

            HttpClient       hc = null;//注入
            TenPayHttpClient tenPayApiRequest = new(_httpClient, _tenpayV3Setting);

            return(await tenPayApiRequest.SendAsync <JsApiReturnJson>(url, data, timeOut));
        }
Ejemplo n.º 3
0
 // TODO: 待测试
 /// <summary>
 /// Native支付下单接口
 /// <para>在微信支付服务后台生成Native支付预支付交易单,返回预支付交易会话标识</para>
 /// </summary>
 /// <param name="data">微信支付需要POST的Data数据</param>
 /// <param name="timeOut">超时时间,单位为ms </param>
 /// <returns></returns>
 public async Task <NativeReturnJson> NativeAsync(TransactionsRequestData data, int timeOut = Config.TIME_OUT)
 {
     try
     {
         var url = ReurnPayApiUrl("https://api.mch.weixin.qq.com/{0}v3/pay/transactions/native");
         TenPayApiRequest tenPayApiRequest = new(_tenpayV3Setting);
         return(await tenPayApiRequest.RequestAsync <NativeReturnJson>(url, data, timeOut));
     }
     catch (Exception ex)
     {
         SenparcTrace.BaseExceptionLog(ex);
         return(new NativeReturnJson()
         {
             ResultCode = new TenPayApiResultCode()
             {
                 ErrorMessage = ex.Message
             }
         });
     }
 }
Ejemplo n.º 4
0
 /// <summary>
 /// H5支付下单接口
 /// <para>在微信支付服务后台生成H5支付预支付交易单,返回预支付交易会话标识</para>
 /// </summary>
 /// <param name="data">微信支付需要POST的Data数据 注意:H5下单scene_info参数必填</param>
 /// <param name="timeOut">超时时间,单位为ms</param>
 /// <returns></returns>
 public async Task <H5ReturnJson> H5Async(TransactionsRequestData data, int timeOut = Config.TIME_OUT)
 {
     try
     {
         var url = ReurnPayApiUrl(Senparc.Weixin.Config.TenPayV3Host + "/{0}v3/pay/transactions/h5");
         TenPayApiRequest tenPayApiRequest = new(_tenpayV3Setting);
         return(await tenPayApiRequest.RequestAsync <H5ReturnJson>(url, data, timeOut));
     }
     catch (Exception ex)
     {
         SenparcTrace.BaseExceptionLog(ex);
         return(new H5ReturnJson()
         {
             ResultCode = new TenPayApiResultCode()
             {
                 ErrorMessage = ex.Message
             }
         });
     }
 }
Ejemplo n.º 5
0
        public void JsAPiAsyncTest()
        {
            var key = TenPayHelper.GetRegisterKey(Config.SenparcWeixinSetting);

            var TenPayV3Info = TenPayV3InfoCollection.Data[key];

            var price     = 100;
            var name      = "单元测试-" + DateTime.Now.ToString();
            var sp_billno = string.Format("{0}{1}{2}", TenPayV3Info.MchId /*10位*/, SystemTime.Now.ToString("yyyyMMddHHmmss"),
                                          TenPayV3Util.BuildRandomStr(6));

            //TODO: JsApiRequestData修改构造函数参数顺序
            jsApiRequestData = new(TenPayV3Info.AppId, TenPayV3Info.MchId, name, sp_billno, new TenpayDateTime(DateTime.Now.AddHours(1)), null, TenPayV3Info.TenPayV3Notify, null, new() { currency = "CNY", total = price }, new(openId), null, null, null);

            BasePayApis basePayApis = new BasePayApis();
            var         result      = basePayApis.JsApiAsync(jsApiRequestData).GetAwaiter().GetResult();

            Console.WriteLine("微信支付 V3 预支付结果:" + result.ToJson(true));

            Assert.IsNotNull(result);
            Assert.IsTrue(result.ResultCode.Success);
            Assert.IsTrue(result.VerifySignSuccess == true);//通过验证
        }