/// <summary> /// 验签 /// </summary> /// <param name="inputPara"></param> /// <returns></returns> private bool Verify(SortedDictionary <string, string> inputPara) { ZFBResDto model = new ZFBResDto(); Dictionary <string, string> sPara = new Dictionary <string, string>(); Boolean verifyResult = AlipaySignature.RSACheckV1(inputPara, alipay_public_key, charset, sign_type, false); return(verifyResult); }
public ApiResult GetZfbInfo(int money) { var zFBResDto = new ZFBResDto(); zFBResDto.OrderId = GetRandom(); if (_service.AddComeOutRecord(zFBResDto.OrderId, money, 2, (int)this.UserInfo.UserId)) { notifyUrl = ApiHost + "/api/Recharge/AsyncPay"; LogHelper.Info("notifyUrl=" + notifyUrl); IAopClient client = new DefaultAopClient(apiUrl, app_id, merchant_private_key, format, version, sign_type, alipay_public_key, charset, false); //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称如:alipay.trade.app.pay AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); model.Body = "金币充值"; model.Subject = "金币充值"; model.TotalAmount = money.ToString(); model.ProductCode = "QUICK_MSECURITY_PAY"; model.OutTradeNo = zFBResDto.OrderId; model.TimeoutExpress = "5m"; request.SetBizModel(model); request.SetNotifyUrl(notifyUrl); //这里和普通的接口调用不同,使用的是sdkExecute AlipayTradeAppPayResponse response = client.SdkExecute(request); //页面输出的response.Body就是orderString 可以直接给客户端请求,无需再做处理。 zFBResDto.ResponseBody = response.Body; //HttpUtility.HtmlEncode是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题 var result = new ApiResult <ZFBResDto>(); result.Data = zFBResDto; return(result); } else { return(new ApiResult(10000, "生成订单失败")); } }