public void PayParkingAsyncTest() { // 若没有创建停车入场, 则创建停车入场 if (createParkingResult is null) { CreateParkingAsyncTest(); } var key = TenPayHelper.GetRegisterKey(Config.SenparcWeixinSetting); var TenPayV3Info = TenPayV3InfoCollection.Data[key]; var out_order_no = string.Format("{0}{1}{2}", TenPayV3Info.MchId /*10位*/, SystemTime.Now.ToString("yyyyMMddHHmmss"), TenPayV3Util.BuildRandomStr(6)); var parking_info = new PayParkingRequestData.Parking_Info(createParkingResult); // 停车场设备id parking_info.device_id = "{device_id}"; // 每小时收费 var price = 1; // 根据停车时间计算收费 var amount = new PayParkingRequestData.Amount(price * parking_info.charging_duration, "CNY"); var requestData = new PayParkingRequestData(TenPayV3Info.AppId, "Senparc单元测试停车场扣费", null, out_order_no, "PARKING", null, notify_url, null, amount, parking_info); var vehicleParkingApis = new VehicleParkingApis(); payParkingResult = vehicleParkingApis.PayParkingAsync(requestData).GetAwaiter().GetResult(); Console.WriteLine("微信支付 V3 扣费受理接口测试结果:" + payParkingResult.ToJson(true)); Assert.IsNotNull(payParkingResult); Assert.IsTrue(payParkingResult.ResultCode.Success); Assert.IsTrue(payParkingResult.VerifySignSuccess == true);//通过验证 }
/// <summary> /// 扣费受理接口 /// <para>商户请求扣费受理接口,会完成订单受理。微信支付进行异步扣款,支付完成后,会将订单支付结果发送给商户。</para> /// <para>更多详细请参考 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter8_8_3.shtml </para> /// </summary> /// <param name="data">微信支付需要POST的Data数据</param> /// <param name="timeOut">超时时间,单位为ms</param> /// <returns></returns> public async Task <PayParkingReturnJson> PayParkingAsync(PayParkingRequestData data, int timeOut = Config.TIME_OUT) { //TODO: 方法名是否恰当? var url = ReurnPayApiUrl(Senparc.Weixin.Config.TenPayV3Host + "/{0}v3/vehicle/transactions/parking"); TenPayApiRequest tenPayApiRequest = new(_tenpayV3Setting); return(await tenPayApiRequest.RequestAsync <PayParkingReturnJson>(url, data, timeOut)); }