GithubHelp home page GithubHelp logo

omnipay-paymentexpress's People

Contributors

aderuwe avatar amacneil avatar barryvdh avatar delatbabel avatar eileenmcnaughton avatar garethhallnz avatar gdhnz avatar greydnls avatar hchokshi avatar joshbmarshall avatar kielabokkie avatar leith avatar madmatt avatar mikeybeck avatar notf0und avatar petah avatar philsturgeon avatar pilot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

omnipay-paymentexpress's Issues

PxPost declining creating credit card

The createCard() function in the PxPost code fails with an error from Payment Express unless a currency is specified.

Pull request #39 adds the currency to the request to Payment Express.

In my test case, I have an AUD account but the default at Payment Express was NZD so it was returning a fail code. It may not be for every account this happens to, but specifying the currency is a failsafe.

Support saving credit card for PxPay

It would be great if the PxPay implementation supported setting EnableAddBillCard = 1 when creating an Auth or Purchase request.

The use case is using PxPay to save a credit card at DPS, by providing a BillingId and EnableAddBillCard set to 1. We can then use the BillingId we generated for token billing with both PxPay and PxPost, but my use case is saving the credit card with PxPay (thereby reducing PCI-DSS requirements) and rebilling with PxPost.

More information: http://www.paymentexpress.com/Technical_Resources/Ecommerce_Hosted/PxPay#tokenbilling

3.1.0 Uses incorrect namespace, breaks payment API calls

Attempting to create a Payment on 3.1.0 raised the below issue.

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <s:Fault>
            <faultcode xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported
            </faultcode>
            <faultstring xml:lang="en-NZ">The message with Action 'http://windcave.com/IPxFusion/GetTransactionId'
                cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This
                may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a
                binding/security mismatch between the sender and the receiver. Check that sender and receiver have the
                same contract and the same binding (including security requirements, e.g. Message, Transport, None).
            </faultstring>
        </s:Fault>
    </s:Body>
</s:Envelope>

Rolling back to 3.0.1 resolved this in my project.

Has something else changed that #60 neglected to reflect in the rebranding?

Allow Create Token to use the amount set

Payment express does an initial payment when creating a token. It is currently hard-coded to $1 but it is valid to do it for a user-defined amount

The PR facilitates that ... #13

High coupling to the HTTP request?

I was looking through the source to find how to provide the PxPay result to the library. It turns out the data is gathered by the library directly from the HTTP request.

        $result = $this->httpRequest->query->get('result');
        if (empty($result)) {
            throw new InvalidResponseException;
        }

The problem is the way my application gets the PxPay result is not directly on redirect from PaymentExpress; it's provided by the browser through a REST API.

It's obviously the most common use case to just automatically grab it from the HTTP request, but this inflexibility is somewhat a dealbreaker. Could it perhaps be overriden such that if it's not provided manually, it will fall back to using the HTTP request directly?

Pass timeout parameter

Hello,

I want to pass timeout parameter while creating payment so that customers can only pay within 10 minutes of time.

I've tried few ways but none working.

$gateway = Omnipay::create('PaymentExpress_PxPay');
$gateway->setUsername('username');
$gateway->setPassword('password');

$response = $gateway->purchase([
    'amount' => 100,
    'currency' => 'USD',
    'to' => Carbon\Carbon::now()->timezone('UTC')->addMinutes(1)->format('ymdHi'),
    'returnUrl' => 'returnURL.php'
])->send();

$gateway = Omnipay::create('PaymentExpress_PxPay');

$gateway->setUsername('username');
$gateway->setPassword('password');

$response = $gateway->purchase([
    'amount' => 100,
    'currency' => 'USD',
    'TO' => Carbon\Carbon::now()->timezone('UTC')->addMinutes(1)->format('ymdHi'),
    'returnUrl' => 'returnURL.php'
])->send();

$gateway = Omnipay::create('PaymentExpress_PxPay');

$gateway->setUsername('username');
$gateway->setPassword('password');

$response = $gateway->purchase([
    'amount' => 100,
    'currency' => 'USD',
    'Opt' => "To=".Carbon\Carbon::now()->timezone('UTC')->addMinutes(1)->format('ymdHi'),
    'returnUrl' => 'returnURL.php'
])->send();

Payment express is providing such feature. Added comment/document provided by payment express.

payment-express

Please help.

Switching between UAT and Production endpoints

Switching between UAT and Production endpoints can only be done at the moment by editing the core code directly.

Need a way to switch:
protected $endpoint = 'https://sec.paymentexpress.com/pxaccess/pxpay.aspx';
to
protected $endpoint = 'https://uat.paymentexpress.com/pxaccess/pxpay.aspx';

Class 'Guzzle\Http\Client' not found

I'm using Guzzle 6 and get the above error.
It is my understanding that the Guzzle namespace changed to GuzzleHttp in version 4, so can this be updated (i.e. change use Guzzle\Http\Client as HttpClient; to use GuzzleHttp\Client as HttpClient;)?

The first parameter of the HttpClient function calls needs to be removed as well.

V3 compatibility

I am one of the maintainers for the Drupal Commerce implementation of this gateway. We really really need to start using V3 of omnipay.
The main reason for this is that event-dispatcher:^2.8 and Guzzle 3 requirement prevents us from installing that latest Drupal versions.

Here is a little more details about the issue we are facing: https://www.drupal.org/project/commerce_dps/issues/2934276

Considering that Ominpay core (V3) is in beta; might I suggest we get a v3 branch too?
I have already upgraded this code to work with V3 core see: https://github.com/garethhallnz/omnipay-paymentexpress/tree/omnipay-v3

Note: While all the tests are passing I have not actually done a real live test yet.

I'll make a pull request once the branch is created.

Thanks

InvalidResponseException - Only when "live"

I've just pushed a project up to a UAT server, very quickly got feedback that people couldn't get through an item purchase as they were getting an InvalidResponseException.

I've got two identically configured servers (Ubuntu 14.04, php7.0, nginx), one inside my dev network that's not accessible to the outside world, and one AWS EC2 instance for UAT.

Running the same code, same DPS credentials, the local one works flawlessly, the EC2 instance throws a InvalidResponseException.

To rule things out I setup a vanilla Laravel 5.2 + omnipay/paymentexpress repo (https://github.com/jpgnz/omnipay-test/) - and it suffers from the same thing on the return call (https://github.com/jpgnz/omnipay-test/blob/master/app/Http/Controllers/OmnipayController.php#L52)

Would appreciate any insight? The only thing I can think of is the PxPay callback doesn't work internally, but this errors before that could get a chance to happen, and I can see the callback attempt in the httpd logs.

Windcave rebranding

As PaymentExpress was rebranded to Windcave, links to endpoints needs to be updated. For that purpos I have made a PR #60. Tests were updated to use new urls as well, so all checks have passed and its ready to merge.

Does this support tokens like Stripe or 2Checkout?

With Stripe or 2Checkout via OmniPay, I can collect credit card info on my website with a token that I receive via Javascript. I then only send the token to my server along with billing/shipping address info (just not credit card info) for processing against Stripe or 2Checkout. This is critical for PCI compliance.

Payment Successful, 404 in logs

Ignore/Self Fail.

It just so happens that the size of the response to the payment success redirect page is exactly 404 bytes, and I was mixing that location up with the 302 redirect header.

off for more coffee

No support for TxnData fields?

There doesn't seem to be any support for the TxnData1, TxnData2, and TxnData3 fields in PxPayAuthorizeRequest::getData when building a request.

Unless I've missed something.

Inconsistancies

Sorry for all my random pull requests.

I think some things are a little off.

Should the TxnId be used as the Omnipay standard Transaction ID?
And shouldn't the DpsTxnRef be used as the Transaction Reference, instead of the MerchantReference? The MerchantReference is used for the description of the purchase showen to the customer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.