Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


These support forums are now closed for new topics and comments.
Please head on over to http://eureka.ucommerce.net/ for support.

  • Dan 1288 posts 3921 karma points c-trib
    May 17, 2010 @ 16:38
    Dan
    0

    SagePay support

    Hi,

    Do either the uCommerce starter or enterprise editions support SagePay out of the box?  Do either of them support subscription-type payment gateway services?

    Thanks

  • Søren Spelling Lund 1797 posts 2786 karma points
    May 19, 2010 @ 11:47
    Søren Spelling Lund
    0

    We don't have any default payment method implementations available. The effort to support local payment gateways is a pretty big undertaking. We're happy to help you promote your implementation to others if you go ahead and build one. Contact me at [email protected] if we'd like some documentation on creating your own implementation.

    Subscription payments are usually handled by the payment provider once a credit card is authorized so no special support is required in uCommerce itself.

  • Søren Spelling Lund 1797 posts 2786 karma points
    May 19, 2010 @ 19:40
    Søren Spelling Lund
    0

    Information on integrating with a payment provider is available: Integrating uCommerce with a Payment Provider.

  • Dan 1288 posts 3921 karma points c-trib
    May 19, 2010 @ 22:27
    Dan
    0

    Thanks Soren - I was never sure of the exact situation with regards to payment gateways and uCommerce, but now I know it's a case of rolling your own, and your instructions look very helpful.

  • Søren Spelling Lund 1797 posts 2786 karma points
    Dec 03, 2010 @ 07:31
    Søren Spelling Lund
    0

    Hi Dan,

    Just wanted to let you know that the situation with SagePay has changed. As of uCommerce 1.2 the SagePay payment provider is included in the box: Setup uCommerce to Include SagePay as a Payment Method

  • Zac 223 posts 575 karma points
    Feb 16, 2011 @ 18:43
    Zac
    0

    Hi there, I thought rather than create a new thread about SagePay it would be helpful to ask in here. I'm having a spot of trouble getting SagePay working out the box.

    http://www.sagepay.com/help/faq/what_is_sage_pay_go_with_server_integration

    Forgive my ignorance, but the method that uCommerce uses (Sage Pay Go) to interact with SagePay... this is different than using the payment URLs? I haven't gotten it to work yet but I'm getting the impression that it goes off to a payment widow (in an iFrame or something?).

    I've followed your guide, and put in the correct details

    <sagePayPaymentMethodService
    vendor="client-vendor-name"
    txType="AUTHENTICATE"
    debug="true"
    testMode="SIMULATOR"
    successUrl="http://xxx/shop/checkout/success"
    abortUrl="http://xxx/shop/checkout/abort"
    failureUrl="http://xxx/shop/checkout/failure"
    notificationURL="(auto)" />

    But when I submit the order and go through to the order confirmation page, all I see is:

    Error parsing XSLT file: \xslt\SubmitBasket[XSLT].xslt  

    I've set Pipeline to None (right?) in the uCommerce section, and Service to SagePay. There is the umbracoLog:

    id userId  NodeId  Datestamp   logHeader   logComment
    108657 0 -1 2011-02-16 17:41:51.980 Error Exception occoured while processing pipeline 'UCommerce.Pipelines.Checkout.CheckoutPipeline'. See inner exception for details. UCommerce.Pipelines.PipelineExecutionResult Execute(T) at UCommerce.Pipelines.Pipeline`1.Execute(T subject) at UCommerce.Transactions.CheckoutService.Checkout(Basket basket) at UCommerce.Xslt.TransactionLibrary.Checkout() at UCommerce.Xslt.Library.HandledCall[T](Func`1 method)
    108656 0 -1 2011-02-16 17:41:51.853 Error The EXECUTE permission was denied on the object 'uCommerce_GetOrderNumber', database 'myDB', schema 'dbo'. Void OnError(System.Data.SqlClient.SqlException, Boolean) at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteScalar() at SubSonic.DataProviders.DbDataProvider.ExecuteScalar(QueryCommand qry) at UCommerce.Transactions.CheckoutService.GetOrderNumber(String orderNumberName) at UCommerce.Pipelines.Checkout.AssignOrderNumberTask.Execute(PurchaseOrder subject) at UCommerce.Pipelines.Pipeline`1.Execute(T subject)
    108655 0 -1 2011-02-16 17:41:51.787 Error The EXECUTE permission was denied on the object 'uCommerce_GetOrderNumber', database 'myDB', schema 'dbo'. Void OnError(System.Data.SqlClient.SqlException, Boolean) at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteScalar() at SubSonic.DataProviders.DbDataProvider.ExecuteScalar(QueryCommand qry) at UCommerce.Transactions.CheckoutService.GetOrderNumber(String orderNumberName) at UCommerce.Pipelines.Checkout.AssignOrderNumberTask.Execute(PurchaseOrder subject) at UCommerce.Pipelines.Pipeline`1.Execute(T subject)
    108654 0 -1 2011-02-16 17:41:51.770 Error Exception occoured while processing pipeline 'UCommerce.Pipelines.Checkout.CheckoutPipeline'. See inner exception for details.
  • Søren Spelling Lund 1797 posts 2786 karma points
    Feb 17, 2011 @ 09:00
    Søren Spelling Lund
    0

    Hi Zac,

    Looks like you're having some trouble with execute rights in the database. uCommerce uses a stored proc to generate orders number. The user name specified in your connection string or identity of of the app pool if you're running integrated mode needs execute rights on the proc uCommerce_GetOrderNumber.

  • Zac 223 posts 575 karma points
    Feb 17, 2011 @ 14:36
    Zac
    0

    Whoops, thanks, sorted that.

    I now see "The pipeline executed succesfully", the customer gets an email, but at no point was there a redirection to sage pay.

    Sorry to be a continuous pain, but what huge step am I missing here?

     

  • Søren Spelling Lund 1797 posts 2786 karma points
    Feb 18, 2011 @ 08:17
    Søren Spelling Lund
    0

    No problem at all.

    Are you using the provider from .NET or XSLT?

  • Søren Spelling Lund 1797 posts 2786 karma points
    Feb 21, 2011 @ 09:46
    Søren Spelling Lund
    0

    Also if you could provide me with details of the hosting environment that would be extremely helpful. Which IIS and .NET Framework versions are you running?

  • Zac 223 posts 575 karma points
    Feb 21, 2011 @ 11:14
    Zac
    0

    It's Windows Server 2008 R2 Standard running IIS 7.5

    As for providers, at this point I'm a bit lost. All I've done is set up the payment method in uCommerce, set the provider as SagePay, and configured the sagepay .config file. I had originally assumed that everything was all set up out of the box, and that by using the uCommerce Store XSLT files I wouldn't have to integrate anything. Having not been able to find anything in the uCommerce store files that would take payment details, I thought perhaps it used an iFrame or a redirect to SagePay for the payment to happen.

  • Søren Spelling Lund 1797 posts 2786 karma points
    Feb 25, 2011 @ 10:15
    Søren Spelling Lund
    0

    Hi Zac,

    Sorry for the delay in getting back to you.

    uCommerce will redirect the customer to the SagePay server where the actual credit card info is processed and then returned.

    To make it work you either need to do a CreatePayment where you specify that the payment should be requested immediately or if you're doing a two step process: First do CreatePayment but specify false for the "requestPayment" parameter. When you're ready call CommerceLibrary:RequestPayment s().

    For more info please see CreatePayment(Int32, Decimal, Boolean, Boolean)RequestPayment(Int32), and RequestPayments().

    Again sorry for the delay.

  • Tara 20 posts 40 karma points
    Jan 24, 2012 @ 18:53
    Tara
    0

    Hi

    I am at the stage you describe above where the page re-directs off to sagepay to take payment, once the transaction has completed sagepay re-directs to the success.aspx page. When displaying this page what is the best way to retrieve the order Id as it is not passed back from sagepay?

    Thanks

    Tara

  • Søren Spelling Lund 1797 posts 2786 karma points
    Jan 27, 2012 @ 11:50
    Søren Spelling Lund
    0

    The simplest is to store a cookie with the value of the order GUID found on the basket before you send the customer off to Sage. When customer returns to the site you can read that cookie and retrieve the order info with CommerceLibrary:GetPurchaseOrder(orderGuid).

    The basket is cleared at this point so CommerceLibrary:GetBasket() will get you a new blank basket, not the one you want.

  • Tara 20 posts 40 karma points
    Jan 27, 2012 @ 13:09
    Tara
    0

    Thanks for the idea, I will give that a try.

Please Sign in or register to post replies

Write your reply to:

Draft