/// <summary>
/// 获取微信支付相关信息
/// </summary>
/// <returns></returns>
[HttpGet]
public virtual ActionResult Index()
{
JsApiPay jsApiPay = new JsApiPay();
OStudent model = null;
try
{
jsApiPay.GetOpenidAndAccessToken();
jsApiPay.openid = jsApiPay.openid;
string ID = Request["ID"];
model = OStudentSiteService.GetByKey(id).AppendData as OStudent;
if (model != null)
{
jsApiPay.total_fee = 1;
jsApiPay.Order_ID = model.order_ID;
}
WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult();
var wxJsApiParam = jsApiPay.GetJsApiParameters();
ViewBag.wxJsApiParam = wxJsApiParam;
Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam);
}
catch (Exception ex)
{
Response.Write(ex.Message + "," + ex.Source);
Response.End();
}
return View(model);
}
[HttpPost]
public virtual JsonResult PayMethod()
{
AjaxJsonResult ajax = new AjaxJsonResult() { err = true, msg = string.Empty, timeout = 3 };
string id = Request.Form["id"];
string payMethod = Request.Form["payMethod"];
var model = (Project.Core.Models.Model.OStudent)OStudentSiteService.GetByKey(id).AppendData;
model.payMethod = payMethod;
OperationResult result = OStudentSiteService.Modify(model);
if (result.ResultType == OperationResultType.Success)
{
ajax.err = false;
ajax.msg = "操作成功";
}
return Json(ajax);
}
/// <summary>
/// 修改支付状态
/// </summary>
/// <param name="userID"></param>
/// <returns></returns>
[HttpPost]
public virtual string EditPayStatus(Guid userID)
{
string msg = "error";
var model = OStudentSiteService.GetByKey(userID).AppendData as OStudent;
model.Status = (int)X.Project.Site.Models.Enum.PayStatus.Success;
OperationResult result = OStudentSiteService.Modify(model);
if (result.ResultType == OperationResultType.Success)
{
msg = "ok";
}
return msg;
}
前台Index.chtml视图页面JS代码
<script type="text/javascript">
var _wxJsApiParam = eval('(@Html.Raw(ViewBag.wxJsApiParam))');
function callpay() {
var payMethod = $("input[name='PayMethod']:checked").val();
if (payMethod == "" || payMethod == null) {
layer.msg("请选择支付方式", function () { })
return false;
}
$.ajax({
type: "POST",
dataType: "JSON",
url: '@Url.Action("PayMethod", "WeChatWeb")',
data: {
payMethod: payMethod,
id: '@Model.ID'
},
success: function (data) {
if (!data.err) {
if (payMethod == "1") {
if (typeof WeixinJSBridge == "undefined") {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
}
else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
}
}
else {
jsApiCall();
}
} else if (payMethod == "2") {
layer.alert('恭喜您,操作成功!', function () {
window.location.href = "@Url.Action(MVC.Default.Index())" ;
});
}
} else {
layer.msg("操作失败", function () { })
return false;
}
}
});
}
function jsApiCall() {
WeixinJSBridge.invoke('getBrandWCPayRequest', _wxJsApiParam,
function (res) {
if (res.err_msg == "get_brand_wcpay_request:cancel") {
layer.msg("已取消支付", function () { });
return false;
} else if (res.err_msg == "get_brand_wcpay_request:ok") {
$.ajax({
type: "POST",
dataType: "text",
url: '@Url.Action("EditPayStatus", "WeChatWeb")',
data: {
userID: '@Model.ID'
},
error: function (request) {
layer.msg("服务器错误!", function () { });
return false;
},
success: function (data) {
window.location.href = "@Url.Action(MVC.Default.Index())";
}
});
}
});
}
</script>