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