public async Task Test_PayIns_CreateRefund_CardDirect() { try { PayInDTO payIn = await this.GetNewPayInCardDirect(); WalletDTO wallet = await this.GetJohnsWalletWithMoney(); WalletDTO walletBefore = await this.Api.Wallets.GetAsync(wallet.Id); RefundDTO refund = await this.GetNewRefundForPayIn(payIn); WalletDTO walletAfter = await this.Api.Wallets.GetAsync(wallet.Id); Assert.IsTrue(refund.Id.Length > 0); Assert.IsTrue(refund.DebitedFunds.Amount == payIn.DebitedFunds.Amount); Assert.IsTrue(walletBefore.Balance.Amount == (walletAfter.Balance.Amount + payIn.DebitedFunds.Amount)); Assert.AreEqual(TransactionType.PAYOUT, refund.Type); Assert.AreEqual(TransactionNature.REFUND, refund.Nature); } catch (Exception ex) { Assert.Fail(ex.Message); } }
/// <summary> /// 退款查询 /// </summary> /// <param name="dto"></param> /// <returns></returns> public RefundQueryResult RefundQuery(RefundDTO dto) { WeixinDataHelper data = new WeixinDataHelper(this._weixinKey); //忽略:微信退款单号,优先级最高data.SetValue("refund_id", refund_id); // if (!string.IsNullOrEmpty(dto.OutRefundNo)) { data.SetValue("out_refund_no", dto.OutRefundNo);//商户退款单号,优先级第二 } else if (!string.IsNullOrEmpty(dto.OnlineTradeNo)) { data.SetValue("transaction_id", dto.OnlineTradeNo);//微信订单号,优先级第三 } else { data.SetValue("out_trade_no", dto.OutTradeNo);//商户订单号,优先级最低 } WeixinDataHelper response = weixinPayApi.RefundQuery(data);//提交退款查询给API,接收返回数据 var result = new RefundQueryResult(); result.SetWeixiResult(response); return(result); }
public void Test_Refund_GetRefundsForPayIn() { try { PayInDTO payIn = GetNewPayInCardDirect(); RefundDTO refund = GetNewRefundForPayIn(payIn); var pagination = new Pagination(1, 1); var filter = new FilterRefunds { ResultCode = payIn.ResultCode, Status = payIn.Status }; var sort = new Sort(); sort.AddField("CreationDate", SortDirection.desc); var refunds = Api.Refunds.GetRefundsForPayIn(payIn.Id, pagination, filter, sort); Assert.IsTrue(refunds.Count > 0); } catch (Exception ex) { Assert.Fail(ex.Message); } }
public void Test_Refund_GetRefundsForTransfer() { try { var wallet = this.GetNewJohnsWalletWithMoney(10000); TransferDTO transfer = this.GetNewTransfer(wallet); RefundDTO refund = this.GetNewRefundForTransfer(transfer); var pagination = new Pagination(1, 1); var filter = new FilterRefunds { ResultCode = transfer.ResultCode, Status = transfer.Status }; var sort = new Sort(); sort.AddField("CreationDate", SortDirection.desc); var refunds = Api.Refunds.GetRefundsForTransfer(transfer.Id, pagination, filter, sort); Assert.IsTrue(refunds.Count > 0); } catch (Exception ex) { Assert.Fail(ex.Message); } }
public void Test_Idempotency_PayinsCreateRefunds() { string key = DateTime.Now.Ticks.ToString(); PayInDTO payIn = this.GetNewPayInCardDirect(); RefundDTO refund = this.GetNewRefundForPayIn(payIn, key); var result = Api.Idempotency.Get(key); Assert.IsInstanceOf <RefundDTO>(result.Resource); }
public void Test_Refund_GetForPayIn() { PayInDTO payIn = this.GetNewPayInCardDirect(); RefundDTO refund = this.GetNewRefundForPayIn(payIn); UserNaturalDTO user = this.GetJohn(); RefundDTO getRefund = this.Api.Refunds.Get(refund.Id); Assert.AreEqual(getRefund.Id, refund.Id); Assert.AreEqual(getRefund.InitialTransactionId, payIn.Id); Assert.AreEqual(getRefund.AuthorId, user.Id); Assert.AreEqual(getRefund.Type, TransactionType.PAYOUT); }
public void Test_Refund_GetForTransfer() { TransferDTO transfer = this.GetNewTransfer(); RefundDTO refund = this.GetNewRefundForTransfer(transfer); UserNaturalDTO user = this.GetJohn(); RefundDTO getRefund = this.Api.Refunds.Get(refund.Id); Assert.AreEqual(getRefund.Id, refund.Id); Assert.AreEqual(getRefund.InitialTransactionId, transfer.Id); Assert.AreEqual(getRefund.AuthorId, user.Id); Assert.AreEqual(getRefund.Type, TransactionType.TRANSFER); }
/// <summary> /// 订单退款 /// </summary> /// <returns></returns> public ActionResult RefundOrderWeixin(RefundDTO dto) { try { IF2FTradeService service = new WeixinTradeService(); service.SetAuthToken("1366316402"); dto.OperatorId = "111"; var result = service.Refund(dto); return(Content(string.Format("传参值:{0}<br/>请求结果:{1}<br/>子商户:{2}", new JavaScriptSerializer().Serialize(dto), result.ResponseBody, "1366316402"))); } catch (Exception e) { return(Content(string.Format("发生异常:{0}", e.Message))); } }
public void Test_Transfers_CreateRefund() { WalletDTO wallet = this.GetNewJohnsWalletWithMoney(10000); TransferDTO transfer = this.GetNewTransfer(wallet); WalletDTO walletBefore = this.Api.Wallets.Get(wallet.Id); RefundDTO refund = this.GetNewRefundForTransfer(transfer); WalletDTO walletAfter = this.Api.Wallets.Get(wallet.Id); Assert.IsTrue(refund.Id.Length > 0); Assert.IsTrue(refund.DebitedFunds.Amount == transfer.DebitedFunds.Amount); Assert.IsTrue(walletBefore.Balance.Amount == (walletAfter.Balance.Amount - transfer.DebitedFunds.Amount)); Assert.AreEqual(TransactionType.TRANSFER, refund.Type); Assert.AreEqual(TransactionNature.REFUND, refund.Nature); }
public void Test_Refund_GetForTransfer() { WalletDTO wallet = this.GetNewJohnsWalletWithMoney(10000); TransferDTO transfer = this.GetNewTransfer(wallet); RefundDTO refund = this.GetNewRefundForTransfer(transfer); UserNaturalDTO user = this.GetJohn(); RefundDTO getRefund = this.Api.Refunds.Get(refund.Id); Assert.AreEqual(getRefund.Id, refund.Id); Assert.AreEqual(getRefund.InitialTransactionId, transfer.Id); Assert.AreEqual(getRefund.AuthorId, user.Id); Assert.AreEqual(getRefund.Type, TransactionType.TRANSFER); Assert.IsNotNull(getRefund.RefundReason); Assert.AreEqual(getRefund.RefundReason.RefundReasonType, RefundReasonType.OTHER); }
/// <summary> /// 订单退款 /// </summary> /// <returns></returns> public ActionResult RefundOrder(RefundDTO dto) { try { IF2FTradeService service = new AliPayTradeService(); if (Session["CurrentAlipayAuthToken"] != null && !string.IsNullOrEmpty(Session["CurrentAlipayAuthToken"].ToString())) { service.SetAuthToken(Session["CurrentAlipayAuthToken"].ToString()); } var result = service.Refund(dto); return(Content(string.Format("传参值:{0}<br/>请求结果:{1}<br/>CurrentAlipayAuthToken:{2}", new JavaScriptSerializer().Serialize(dto), result.ResponseBody, Session["CurrentAlipayAuthToken"]))); } catch (Exception e) { return(Content(string.Format("发生异常:{0}", e.Message))); } }
public async Task Test_Refund_GetForPayIn() { PayInDTO payIn = await this.GetNewPayInCardDirect(); RefundDTO refund = await this.GetNewRefundForPayIn(payIn); UserNaturalDTO user = await this.GetJohn(); RefundDTO getRefund = await this.Api.Refunds.GetAsync(refund.Id); Assert.AreEqual(getRefund.Id, refund.Id); Assert.AreEqual(getRefund.InitialTransactionId, payIn.Id); Assert.AreEqual(getRefund.AuthorId, user.Id); Assert.AreEqual(getRefund.Type, TransactionType.PAYOUT); Assert.IsNotNull(getRefund.RefundReason); Assert.AreEqual(getRefund.RefundReason.RefundReasonType, RefundReasonType.INITIALIZED_BY_CLIENT); }
/// <summary> /// 退款查询 /// </summary> /// <param name="dto"></param> /// <returns></returns> public RefundQueryResult RefundQuery(RefundDTO dto) { AlipayTradeRefundQueryDTO refundQueryDto = new AlipayTradeRefundQueryDTO(); refundQueryDto.trade_no = dto.OnlineTradeNo; refundQueryDto.out_trade_no = dto.OutTradeNo; refundQueryDto.out_request_no = dto.OutRefundNo; AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest(); request.BizContent = refundQueryDto.BuildJson(); AlipayTradeFastpayRefundQueryResponse response = Execute(request); var result = new RefundQueryResult(); result.SetAlipayResult(response); return(result); }
public void Test_PayIns_CreateRefund_CardDirect() { try { PayInDTO payIn = TestHelper.GetNewPayInCardDirect(); WalletDTO wallet = TestHelper.GetJohnsWalletWithMoney(); WalletDTO walletBefore = TestHelper.WalletsApi.Get(wallet.Id).Result; RefundDTO refund = TestHelper.GetNewRefundForPayIn(payIn); WalletDTO walletAfter = TestHelper.WalletsApi.Get(wallet.Id).Result; Assert.True(refund.Id.Length > 0); Assert.True(refund.DebitedFunds.Amount == payIn.DebitedFunds.Amount); Assert.True(walletBefore.Balance.Amount == (walletAfter.Balance.Amount + payIn.DebitedFunds.Amount)); Assert.Equal(TransactionType.PAYOUT, refund.Type); Assert.Equal(TransactionNature.REFUND, refund.Nature); } catch (Exception ex) { Assert.True(false, ex.Message); } }
/// <summary> /// 申请退款 /// </summary> /// <param name="dto"></param> /// <returns></returns> public RefundResult Refund(RefundDTO dto) { WeixinDataHelper data = new WeixinDataHelper(this._weixinKey); if (!string.IsNullOrEmpty(dto.OnlineTradeNo))//微信订单号存在的条件下,则已微信订单号为准 { data.SetValue("transaction_id", dto.OnlineTradeNo); } else//微信订单号不存在,才根据商户订单号去退款 { data.SetValue("out_trade_no", dto.OutTradeNo); } data.SetValue("total_fee", int.Parse(((Convert.ToDouble(dto.TotalFee)) * 100).ToString())); //订单总金额 data.SetValue("refund_fee", int.Parse(((Convert.ToDouble(dto.RefundFee)) * 100).ToString())); //退款金额 data.SetValue("out_refund_no", dto.OutRefundNo); //随机生成商户退款单号 data.SetValue("op_user_id", dto.OperatorId); //操作员,默认为商户号 WeixinDataHelper respose = weixinPayApi.Refund(data); //提交退款申请给API,接收返回数据 var result = new RefundResult(); result.SetWeixiResult(respose); return(result); }
/// <summary> /// 退款申请 /// </summary> /// <param name="dto"></param> /// <returns></returns> public RefundResult Refund(RefundDTO dto) { RefundResult result = new RefundResult(); try { AlipayTradeRefundDTO refundDto = new AlipayTradeRefundDTO(); refundDto.out_request_no = dto.OutRefundNo; refundDto.out_trade_no = dto.OutTradeNo; refundDto.refund_amount = dto.RefundFee; refundDto.refund_reason = dto.RefundReason; refundDto.trade_no = dto.OnlineTradeNo; AlipayTradeRefundRequest refundRequest = new AlipayTradeRefundRequest(); refundRequest.BizContent = refundDto.BuildJson(); AlipayTradeRefundResponse response = Execute(refundRequest); result.SetAlipayResult(response); return(result); } catch (Exception e) { throw new F2FPayException(e.Message); } }