我正在做一个收费系统。客户支付货款的 API 在 JavaScript 中运行:
function jsApiCall()
{
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
<%=wxJsApiParam%>,
function (res)
{
WeixinJSBridge.log(res.err_msg);
//alert(res.err_code + res.err_desc + res.err_msg);
switch(res.err_msg)
{
case 'get_brand_wcpay_request:cancel':
document.getElementById("Hidden1").value=1;
alert('payment canceled!');
break;
case 'get_brand_wcpay_request:fail':
document.getElementById("Hidden1").value=2;
alert('payment failed!');
break;
case 'get_brand_wcpay_request:ok':
document.getElementById("Hidden1").value=3;
alert('payment successful!');
break;
}
}
);
}
我使用以下代码从jsApiCall()获取相应的值。
<input id="Hidden1" type="hidden" runat="server" />
在获得 Hidden1.Value 的值后,我需要立即将一些信息附加到服务器中的文本文件中,但不应要求客户单击任何按钮或执行任何操作。下面的后端代码应该写在哪里?谢谢。
string rst = Hidden1.Value;
switch (rst)
{
case "1":
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine("1");
}
break;
case "2":
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine("2");
}
break;
case "3":
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine("3");
}
break;
default:
Response.Write("failed to update .txt file");
break;
}
总之,我想要的是在任何客户成功付款后立即在服务器中记录一些信息。如果这种方法不起作用,我也很感激有人能给我一些建议。
最佳答案
首先在js端写一个函数——这个函数将负责从客户端获取值然后提交给服务器。
要将值提交到服务器,您有 2 个选项(根据您的需要):
- 在表单中隐藏输入并强制该表单从新的 js 函数内部提交。
- 让你的js函数直接通过ajax调用来调用服务器方法
调用这个新的 js 函数可以在您的 switch(res.err_msg)
中或在
onchange event隐藏输入。
示例:
function (res)
{
WeixinJSBridge.log(res.err_msg);
//alert(res.err_code + res.err_desc + res.err_msg);
switch(res.err_msg)
{
case 'get_brand_wcpay_request:cancel':
document.getElementById("Hidden1").value=1;
mySubmitToServer(1);
alert('payment canceled!');
break;
case 'get_brand_wcpay_request:fail':
document.getElementById("Hidden1").value=2;
mySubmitToServer(2);
alert('payment failed!');
break;
case 'get_brand_wcpay_request:ok':
document.getElementById("Hidden1").value=3;
mySubmitToServer(3);
alert('payment successful!');
break;
}
}
);
}
function mySubmitToServer(valToSubmit)
{
// submit the form
// OR
// ajax call to server method
}
<form >
<input id="Hidden1" type="hidden" runat="server" />
</form>
关于javascript - 将值从 JavaScript 传递到 C# 后,如何使用它进行一些自动操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50810609/