Beispiel #1
0
        // TODO: 待测试
        /// <summary>
        /// JSAPI合单支付下单接口
        /// <para>在微信支付服务后台生成JSAPI合单预支付交易单,返回预支付交易会话标识</para>
        /// <para>https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter5_1_3.shtml</para>
        /// </summary>
        /// <param name="data">微信支付需要POST的Data数据</param>
        /// <param name="timeOut">超时时间,单位为ms </param>
        /// <returns></returns>
        public async Task <JsApiReturnJson> JsApiCombineAsync(CombineTransactionsRequestData data, int timeOut = Config.TIME_OUT)
        {
            try
            {
                if (data.sub_orders.Count() is not >= 2 or not <= 10)
                {
                    throw new TenpayApiRequestException("sub_orders 参数必须在 2 到 10 之间!");
                }

                var url = ReurnPayApiUrl("https://api.mch.weixin.qq.com/{0}v3/combine-transactions/jsapi");
                TenPayApiRequest tenPayApiRequest = new(_tenpayV3Setting);
                return(await tenPayApiRequest.RequestAsync <JsApiReturnJson>(url, data, timeOut));
            }
            catch (Exception ex)
            {
                SenparcTrace.BaseExceptionLog(ex);
                return(new JsApiReturnJson()
                {
                    ResultCode = new TenPayApiResultCode()
                    {
                        ErrorMessage = ex.Message
                    }
                });
            }
        }
Beispiel #2
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> NativeCombineAsync(CombineTransactionsRequestData data, int timeOut = Config.TIME_OUT)
 {
     try
     {
         var url = ReurnPayApiUrl("https://api.mch.weixin.qq.com/{0}v3/combine-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
             }
         });
     }
 }
Beispiel #3
0
 // TODO: 待测试
 /// <summary>
 /// H5合单支付下单接口
 /// <para>在微信支付服务后台生成H5合单支付预支付交易单,返回预支付交易会话标识</para>
 /// </summary>
 /// <param name="data">微信支付需要POST的Data数据</param>
 /// <param name="timeOut">超时时间,单位为ms</param>
 /// <returns></returns>
 public async Task <H5ReturnJson> H5CombineAsync(CombineTransactionsRequestData data, int timeOut = Config.TIME_OUT)
 {
     try
     {
         var url = ReurnPayApiUrl(Senparc.Weixin.Config.TenPayV3Host + "/{0}v3/combine-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
             }
         });
     }
 }