*** 这个接口 在什么地方用呢(A:在小程序客户端调用微信支付的时候需要用到【而且是必须的】,也就是下午的 小程序客户端调用:wx.requestPayment 的时候)
public ActionResult InquiryNotify()
{
try
{
var resHandler = new ResponseHandler(null);
var return_code = resHandler.GetParameter("return_code");
var return_msg = resHandler.GetParameter("return_msg");
if (return_code != "SUCCESS") return PayResultNotify();
var attach = resHandler.GetParameter("attach");
if (string.IsNullOrEmpty(attach)) return PayResultNotify();
//这里请签名验证,并校验返回的订单金额是否与商户侧的订单金额一致
var cost = resHandler.GetParameter("total_fee");//金额
var tradeId = resHandler.GetParameter("out_trade_no");//商户订单号
//验证支付状态与金额
//业务逻辑处理,采用异步回调
return PayResultNotify("SUCCESS", "OK");
}
catch (Exception ex)
{
return PayResultNotify();
}
}
private ActionResult PayResultNotify(string returnCode = "FAIL", string returnMsg = "wrong")
{
var xml = $@"<xml>
<return_code><![CDATA[{returnCode}]]></return_code>
<return_msg><![CDATA[{returnMsg}]]></return_msg>
</xml>";
return Content(xml, "text/xml");
}
/**
* 支付
*/
bindPay: function(e) {
let that = this
let url = wx.getStorageSync(config.domainName)
url += '服务端接口地址'
let data = {
sessionId: wx.getStorageSync(config.sessionId),
cost: "支付金额",
}
wxRequest.getRequest(url, data).then((res) => {
if (res.data.success) {
let payInfo = res.data.data
wx.requestPayment({
timeStamp: payInfo.timeStamp,
nonceStr: payInfo.nonceStr,
package: payInfo.package,
paySign: payInfo.paySign,
signType: 'MD5',
success: function(res) {
/*这里一定要注意,这里的方法有可能会不执行(支付完成后 用户在不点击 支付完成页面底部的“完成”按钮时 这里的方法是不会执行到的,因此这里请不要写业务逻辑代码)*/
that.queryPayResult(payInfo.tradeId)
},
fail: function(res) {
/*用户取消支付后 会执行这里的方面*/
that.payCancel(payInfo.tradeId)
}
})
} else {
app.showToast(res.data.msg)
}
})
}