123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433 |
- using System.Collections.Generic;
- using System.Threading.Tasks;
- using Essensoft.AspNetCore.Payment.WeChatPay;
- using Essensoft.AspNetCore.Payment.WeChatPay.Payscore.Domain;
- using Essensoft.AspNetCore.Payment.WeChatPay.Payscore.Request;
- using Essensoft.AspNetCore.Payment.WeChatPay.V3;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.Extensions.Options;
- using WebApplicationSample.Models;
- namespace WebApplicationSample.Controllers
- {
- public class WeChatPayScoreController : Controller
- {
- private readonly IWeChatPayClient _client;
- private readonly IOptions<WeChatPayOptions> _optionsAccessor;
- public WeChatPayScoreController(IWeChatPayClient client, IOptions<WeChatPayOptions> optionsAccessor)
- {
- _client = client;
- _optionsAccessor = optionsAccessor;
- }
- public IActionResult Index()
- {
- return View();
- }
- /// <summary>
- /// 创建支付分订单
- /// </summary>
- public IActionResult ServiceOrder()
- {
- return View();
- }
- /// <summary>
- /// 创建支付分订单
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> ServiceOrder(WeChatPayScoreServiceOrderViewModel viewModel)
- {
- var model = new WeChatPayScoreServiceOrderModel
- {
- AppId = _optionsAccessor.Value.AppId,
- ServiceId = _optionsAccessor.Value.PayScoreServiceId,
- OutOrderNo = viewModel.OutOrderNo,
- ServiceIntroduction = viewModel.ServiceIntroduction,
- TimeRange = new TimeRange {
- StartTime = viewModel.StartTime,
- EndTime = viewModel.EndTime
- },
- RiskFund = new RiskFund {
- Name = viewModel.RiskFundName,
- Amount = viewModel.RiskFundAmount
- },
- NotifyUrl = viewModel.NotifyUrl,
- OpenId = viewModel.OpenId
- };
- var request = new WeChatPayScoreServiceOrderRequest();
- request.SetBodyModel(model);
- var response =await _client.ExecuteAsync(request, _optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- /// <summary>
- /// 查询支付分订单
- /// </summary>
- public IActionResult ServiceOrderQuery()
- {
- return View();
- }
- /// <summary>
- /// 查询支付分订单
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> ServiceOrderQuery(WeChatPayScoreServiceOrderQueryViewModel viewModel)
- {
- var model = new WeChatPayScoreServiceOrderQueryModel
- {
- AppId = _optionsAccessor.Value.AppId,
- ServiceId = _optionsAccessor.Value.PayScoreServiceId,
- OutOrderNo = viewModel.OutOrderNo,
- QueryId = viewModel.QueryId
- };
- var request = new WeChatPayScoreServiceOrderQueryRequest();
- request.SetQueryModel(model);
- var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- /// <summary>
- /// 取消支付分订单
- /// </summary>
- public IActionResult ServiceOrderCancel()
- {
- return View();
- }
- /// <summary>
- /// 取消支付分订单
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> ServiceOrderCancel(WeChatPayScoreServiceOrderCancelViewModel viewModel)
- {
- var model = new WeChatPayScoreServiceOrderCancelModel
- {
- AppId = _optionsAccessor.Value.AppId,
- ServiceId = _optionsAccessor.Value.PayScoreServiceId,
- Reason = viewModel.Reason
- };
- var request = new WeChatPayScoreServiceOrderCancelRequest();
- request.OutOrderNo = viewModel.OutOrderNo;
- request.SetBodyModel(model);
- var response = await _client.ExecuteAsync(request,_optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- /// <summary>
- /// 修改支付分订单金额
- /// </summary>
- public IActionResult ServiceOrderModify()
- {
- return View();
- }
- /// <summary>
- /// 修改支付分订单金额
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> ServiceOrderModify(WeChatPayScoreServiceOrderModifyViewModel viewModel)
- {
- var model = new WeChatPayScoreServiceOrderModifyModel
- {
- AppId = _optionsAccessor.Value.AppId,
- ServiceId = _optionsAccessor.Value.PayScoreServiceId,
- PostPayments = new List<PostPayment> {
- new PostPayment{
- Name = viewModel.Name,
- Amount = viewModel.Amount,
- Count = viewModel.Count
- }
- },
- TotalAmount = viewModel.TotalAmount,
- Reason = viewModel.Reason
- };
- var request = new WeChatPayScoreServiceOrderModifyRequest();
- request.OutOrderNo = viewModel.OutOrderNo;
- request.SetBodyModel(model);
- var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- /// <summary>
- /// 完结支付分订单
- /// </summary>
- public IActionResult ServiceOrderComplete()
- {
- return View();
- }
- /// <summary>
- /// 完结支付分订单
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> ServiceOrderComplete(WeChatPayScoreServiceOrderCompleteViewModel viewModel)
- {
- var model = new WeChatPayScoreServiceOrderCompleteModel
- {
- AppId = _optionsAccessor.Value.AppId,
- ServiceId = _optionsAccessor.Value.PayScoreServiceId,
- PostPayments = new List<PostPayment> {
- new PostPayment{
- Name = viewModel.Name,
- Amount = viewModel.Amount,
- Count = viewModel.Count
- }
- },
- TotalAmount = viewModel.TotalAmount
- };
- var request = new WeChatPayScoreServiceOrderCompleteRequest();
- request.OutOrderNo = viewModel.OutOrderNo;
- request.SetBodyModel(model);
- var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- /// <summary>
- /// 商户发起催收扣款
- /// </summary>
- public IActionResult ServiceOrderPay()
- {
- return View();
- }
- /// <summary>
- /// 商户发起催收扣款
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> ServiceOrderPay(WeChatPayScoreServiceOrderPayViewModel viewModel)
- {
- var model = new WeChatPayScoreServiceOrderPayModel
- {
- AppId = _optionsAccessor.Value.AppId,
- ServiceId = _optionsAccessor.Value.PayScoreServiceId
- };
- var request = new WeChatPayScoreServiceOrderPayRequest();
- request.OutOrderNo = viewModel.OutOrderNo;
- request.SetBodyModel(model);
- var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- /// <summary>
- /// 同步服务订单信息
- /// </summary>
- public IActionResult ServiceOrderSync()
- {
- return View();
- }
- /// <summary>
- /// 同步服务订单信息
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> ServiceOrderSync(WeChatPayScoreServiceOrderSyncViewModel viewModel)
- {
- var model = new WeChatPayScoreServiceOrderSyncModel
- {
- AppId = _optionsAccessor.Value.AppId,
- ServiceId = _optionsAccessor.Value.PayScoreServiceId,
- Type = viewModel.Type,
- Detail = new SyncDetail {
- PaidTime = viewModel.PaidTime
- }
- };
- var request = new WeChatPayScoreServiceOrderSyncRequest();
- request.OutOrderNo = viewModel.OutOrderNo;
- request.SetBodyModel(model);
- var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- /// <summary>
- /// 创单结单合并
- /// </summary>
- public IActionResult ServiceOrderDirectComplete()
- {
- return View();
- }
- /// <summary>
- /// 创单结单合并
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> ServiceOrderDirectComplete(WeChatPayScoreServiceOrderDirectCompleteViewModel viewModel)
- {
- var model = new WeChatPayScoreServiceOrderDirectCompleteModel
- {
- AppId = _optionsAccessor.Value.AppId,
- ServiceId = _optionsAccessor.Value.PayScoreServiceId,
- OutOrderNo = viewModel.OutOrderNo,
- ServiceIntroduction = viewModel.ServiceIntroduction,
- PostPayments = new List<PostPayment> {
- new PostPayment{
- Name = viewModel.PostPaymentName,
- Amount = viewModel.PostPaymentAmount,
- Description = viewModel.PostPaymentDescription,
- Count = viewModel.PostPaymentCount
- }
- },
- TimeRange = new TimeRange
- {
- StartTime = viewModel.StartTime,
- EndTime = viewModel.EndTime
- },
- TotalAmount = viewModel.TotalAmount,
- NotifyUrl = viewModel.NotifyUrl,
- OpenId = viewModel.OpenId
- };
- var request = new WeChatPayScoreServiceOrderDirectCompleteRequest();
- request.SetBodyModel(model);
- var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- /// <summary>
- /// 商户预授权
- /// </summary>
- public IActionResult Permissions()
- {
- return View();
- }
- /// <summary>
- /// 商户预授权
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> Permissions(PermissionsViewModel viewModel)
- {
- var model = new WeChatPayScorePermissionsModel
- {
- AppId = _optionsAccessor.Value.AppId,
- ServiceId = _optionsAccessor.Value.PayScoreServiceId,
- AuthorizationCode = viewModel.AuthorizationCode,
- NotifyUrl = viewModel.NotifyUrl
- };
- var request = new WeChatPayScorePermissionsRequest();
- request.SetBodyModel(model);
- var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- /// <summary>
- /// 支付分-查询用户授权记录(授权协议号)
- /// </summary>
- public IActionResult PermissionsQueryForAuthCode()
- {
- return View();
- }
- /// <summary>
- /// 支付分-查询用户授权记录(授权协议号)
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> PermissionsQueryForAuthCode(PermissionsQueryForAuthCodeViewModel viewModel)
- {
- var model = new WeChatPayScorePermissionsQueryForAuthCodeModel
- {
- ServiceId = _optionsAccessor.Value.PayScoreServiceId
- };
-
- var request = new WeChatPayScorePermissionsQueryForAuthCodeRequest();
- request.AuthorizationCode = viewModel.AuthorizationCode;
- request.SetQueryModel(model);
- var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- /// <summary>
- /// 解除用户授权关系(授权协议号)
- /// </summary>
- public IActionResult PermissionsTerminateForAuthCode()
- {
- return View();
- }
- /// <summary>
- /// 解除用户授权关系(授权协议号)
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> PermissionsTerminateForAuthCode(PermissionsTerminateForAuthCodeViewModel viewModel)
- {
- var model = new WeChatPayScorePermissionsTerminateForAuthCodeModel
- {
- ServiceId = _optionsAccessor.Value.PayScoreServiceId,
- Reason = viewModel.Reason
- };
- var request = new WeChatPayScorePermissionsTerminateForAuthCodeRequest();
- request.AuthorizationCode = viewModel.AuthorizationCode;
- request.SetBodyModel(model);
- var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- /// <summary>
- /// 支付分-查询用户授权记录(openid)
- /// </summary>
- public IActionResult PermissionsQueryForOpenId()
- {
- return View();
- }
- /// <summary>
- /// 支付分-查询用户授权记录(openid)
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> PermissionsQueryForOpenId(PermissionsQueryForOpenIdViewModel viewModel)
- {
- var model = new WeChatPayScorePermissionsQueryForOpenIdModel
- {
- AppId = _optionsAccessor.Value.AppId,
- ServiceId = _optionsAccessor.Value.PayScoreServiceId
- };
- var request = new WeChatPayScorePermissionsQueryForOpenIdRequest();
- request.OpenId = viewModel.OpenId;
- request.SetQueryModel(model);
- var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- /// <summary>
- /// 解除用户授权关系(OpenId)
- /// </summary>
- public IActionResult PermissionsTerminateForOpenId()
- {
- return View();
- }
- /// <summary>
- /// 解除用户授权关系(OpenId)
- /// </summary>
- [HttpPost]
- public async Task<IActionResult> PermissionsTerminateForOpenId(PermissionsTerminateForOpenIdViewModel viewModel)
- {
- var model = new WeChatPayScorePermissionsTerminateForOpenIdModel
- {
- AppId = _optionsAccessor.Value.AppId,
- ServiceId = _optionsAccessor.Value.PayScoreServiceId,
- Reason = viewModel.Reason
- };
- var request = new WeChatPayScorePermissionsTerminateForOpenIdRequest();
- request.OpenId = viewModel.OpenID;
- request.SetBodyModel(model);
- var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
- ViewData["response"] = response.Body;
- return View();
- }
- }
- }
|