【发布时间】:2016-09-23 07:33:42
【问题描述】:
我正在尝试使用 SagePay 在我的网站上实施信用卡支付解决方案,我可以在我的网站上进行支付。我正在使用 ASP.NET Web 表单和 C#。这是我的代码:
var objSagePay = new SagePayIntegration();
var request = objSagePay.DirectPaymentRequest();
if ((request != null)) {
request.Vendor = "testVendor";
request.CardHolder = "Customer Name";
request.CardNumber = "4900000000000";
request.CardType = CardType.VISA;
request.ExpiryDate = "0119";
request.Cv2 = "123";
request.Currency = "GBP";
request.Amount = 10.0;
request.BillingAddress1 = "Test Address 1";
request.BillingAddress2 = "";
request.BillingPostCode = "412";
request.BillingCountry = "";
}
var result = objSagePay.ProcessDirectPaymentRequest(request, "https://test.sagepay.com/gateway/service/vspdirect-register.vsp");
执行结果对象调用时,我得到 Object reference is Null。
知道我在哪里做错了吗?
堆栈跟踪
[NullReferenceException:对象引用未设置为对象的实例。] C:\dev\dotnet\VspDotNetKitAPI\SagePayIntegration.cs:93 中的 SagePay.IntegrationKit.SagePayIntegration.GetPropertyTextValue(Object request, String propertyName) C:\dev\dotnet\VspDotNetKitAPI\SagePayIntegration.cs:449 中的 SagePay.IntegrationKit.SagePayIntegration.ProcessDirectPaymentRequest(IDirectPayment paymentRequest, String directPaymentUrl) order_payment_Default.btnProceedCreditCard_Click(Object sender, EventArgs e) in Default.aspx.cs:93 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9692746 System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串事件参数)+108 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 eventArgument)+12 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3562
【问题讨论】:
-
你能发布完整的堆栈跟踪吗?
-
我已经编辑了问题并包含了堆栈跟踪
-
看起来您没有设置足够的属性。你也可以尝试设置
VendorTxCode吗?例如,这是您的订单号。
标签: c# asp.net .net e-commerce opayo