我正在建立一个电子商务网站,而paypal集成似乎正在发挥作用.我有一个购物车,总计了里面的所有物品,添加了运费,然后用这些线将该号码发送到paypal.
string address = "https://api-3t.sandbox.paypal.com/nvp?USER=<username>&PWD=<password>&VERSION=71.0&SIGNATURE=<signature>&METHOD=SetExpressCheckout&PAYMENTREQUEST_0_AMT=" + lblTotal.Text + "&PAYMENTREQUEST_0_CURRENCYCODE=USD&RETURNURL=http://www.secretskeletonminiatures.com/checkout.aspx&CANCELURL=http://www.secretskeletonminiatures.com/cart.aspx&PAYMENTREQUEST_0_PAYMENTACTION=Sale";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
Run Code Online (Sandbox Code Playgroud)
然后我使用HTTPWebResponse从paypal获取响应并解析令牌并将用户重定向到
Response.Redirect("https://www.sandbox.paypal.com/us/cgi-bin/webscr?cmd=_express-checkout&useraction=commit&token=" + token);
Run Code Online (Sandbox Code Playgroud)
当用户进入paypal然后登录并点击"立即付款"按钮并重定向到我的网站的结帐页面.
所以一切似乎都好.但是,当我检查沙箱帐户时,这些钱实际上都没有转移.
最常见的原因是重定向url中缺少useraction = commit参数,但它存在,所以这不是问题.
我想在文本框上设置一个范围验证器,以防止有人订购的产品多于可用产品.我有可用的数量存储在数据库中,我将Ranged Validator的最大值属性数据绑定到数据库中的字段.
<asp:RangeValidator ID="RangeValidator1" runat="server"
ControlToValidate="tbQuantity" Display="Dynamic" ErrorMessage = "Can't Order More Than Quantity."
ForeColor="Red" MaximumValue='<%# Eval("Quantity") %>' MinimumValue="0"></asp:RangeValidator>
Run Code Online (Sandbox Code Playgroud)
但是,当我调试程序时,我得到一些意想不到的结果.
数量为17.并且1不会触发错误消息,但2-9会触发,而10-17不会触发它,但是18和更高触发它.我猜这与它正在比较字符串的事实有关,但我不确定如何将它改为比较数字.
我刚刚将一个用户和角色的asp数据库部署到一个网站,我得到了这个例外
你调用的对象是空的.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
Line 41: #endregion
Line 42:
Line 43: public UsersAndRolesDataContext() :
Line 44: base(global::System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString" ].ConnectionString, mappingSource)
Line 45: {
Source File: d:\hosting\7122544\html\SSM\App_Code\UsersAndRoles.designer.cs Line: 43
Stack Trace:
[NullReferenceException: Object reference not set to an instance of an object.]
UsersAndRolesDataContext..ctor() in d:\hosting\7122544\html\SSM\App_Code \UsersAndRoles.designer.cs:43
admin_ManageUsers..ctor() in d:\hosting\7122544\html\SSM\admin\ManageUsers.aspx.cs:11
ASP.admin_manageusers_aspx..ctor() in c:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\ssm\5b123e8f\6bb9cf4c\App_Web_tz5adhff.10.cs:0
__ASP.FastObjectFactory_app_web_tz5adhff.Create_ASP_admin_manageusers_aspx() in c:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\ssm\5b123e8f\6bb9cf4c\App_Web_tz5adhff.12.cs:0
System.Web.Compilation.BuildResultCompiledType.CreateInstance() +32
System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) …Run Code Online (Sandbox Code Playgroud) 我正在为朋友制作一个电子商务网站,我希望尽可能地扩展它.我假设他们的社区将在某种程度上成长为压倒性的数字,他们最终将需要指定新的管理员.我不希望他们来找我配置WSAT.我已经放入了两个下拉列表和一个按钮.一个用户拉取用户并将用户名与他们所处的角色连接起来.第二个用户名拉取所有角色.该按钮可将所选用户从其所在位置移除,并将其置于下拉列表中选定的角色中.
<asp:DropDownList ID="ddlUsers" runat="server" AppendDataBoundItems="True"
DataSourceID="dsMembers" DataTextField="Info" DataValueField="Username">
<asp:ListItem>--Select a User --</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="ddlRoles" runat="server" AppendDataBoundItems="True"
DataSourceID="dsRoles" DataTextField="RoleName" DataValueField="RoleId"
style="margin-bottom: 0px">
<asp:ListItem>--Select Privilege--</asp:ListItem>
</asp:DropDownList>
<asp:LinkButton ID="lbtnChangeRole" runat="server"
onclick="lbtnChangeRole_Click">Change Role</asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)
但是,每次单击按钮时,无论我选择哪一个,它都会自动选择列表中的第一个用户.
这是背后的代码.
protected void lbtnChangeRole_Click(object sender, EventArgs e)
{
string user = ddlUsers.SelectedValue.ToString();
string role = ddlRoles.SelectedItem.ToString();
string currentRole = Roles.GetRolesForUser(user)[0];
//check to see if the user is already in role
if (!Roles.IsUserInRole(user, role))
{
Roles.AddUserToRole(user, role);
Roles.RemoveUserFromRole(user, currentRole);
}
}
Run Code Online (Sandbox Code Playgroud) 我最近从一个不再与公司合作的作者获得了一些代码的所有权.在整个代码中,我找到了这一行
if (string.Compare(string.Empty, textbox1.Text, true) == 0)
Run Code Online (Sandbox Code Playgroud)
我不是最先进的C#程序员,但对我来说,功能上看起来和我一样
if (textbox1.Text == "")
Run Code Online (Sandbox Code Playgroud)
是否有任何边缘情况,第一行将捕获第二行不会?