Skip to content

Add solution id #87

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Oct 7, 2017
Merged

Add solution id #87

merged 5 commits into from
Oct 7, 2017

Conversation

hillelcoren
Copy link
Contributor

This changes enables setting the solution id

http://developer.authorize.net/api/solution_id

Solution ID enables software vendors to uniquely track the transactions submitted from their application to Authorize.Net.

Unlike your merchant referrals, which are tied only to your Affiliate ID, Solution ID identifies the application creating a transaction for every merchant using your software regardless of who sold the application, gateway or merchant account.

@hillelcoren hillelcoren changed the title Added solution id Add solution id Oct 4, 2017
@judgej
Copy link
Member

judgej commented Oct 4, 2017

I've removed PHP 5.3 from the travis builds. If you pull from master into your branch, you should be able to get through the tests.

@judgej
Copy link
Member

judgej commented Oct 4, 2017

I'll try and get a few PRs fed through over the coming week. Just busy fighting with Datatables today...

Can I confirm that this change is working for you in production? Authorize.Net can be a little more fussy about the order of the XML fields in production than it is in test instances.

@hillelcoren
Copy link
Contributor Author

Ok, no rush. I'm using a custom fork in the meantime. I've tested this on my development machine, it'll be in production in about 6 weeks.

It took me a little while to get it working due to XML errors from the fields being out of order but it's now working correctly.

@judgej
Copy link
Member

judgej commented Oct 7, 2017

It's pretty poorly documented - I couldn't find the solution ID in any of the AIM XML documents.

It's here in the REST API documentation though. The solution.id field is immediately followed by the terminalNumber (which is not supported by this package at this time) and then the order.invoiceNumber. Your $this->addSolutionId($data); comes immediately before $this->addBillingData($data); and the first field added in that method is order.invoiceNumber, so I'm happy that the order is correct.

So I'm confident that the order is correct, but we do lack some tests that feed ALL possible fields into the request and check the result is in the correct order. It is just too easy to add a new field that works when you try it out, but may fail for someone using another field that you don't happen to use.

I'll merge in this PR anyway, as this field has no effect if not used, but we do need to extend the tests to include it.

@judgej judgej merged commit a508b56 into thephpleague:master Oct 7, 2017
judgej added a commit to academe/omnipay-authorizenet that referenced this pull request Oct 7, 2017
judgej added a commit that referenced this pull request Oct 7, 2017
@hillelcoren
Copy link
Contributor Author

Thanks for merging the change!

@judgej
Copy link
Member

judgej commented Oct 7, 2017

A few more PRs then I'll do a release,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants