Paypal Error 10712 your zip code is invalid in billing details - paypal

I am try to do directy payment with but I am getting error 10712. Here is array that I am posting to paypal.
[card_fname] => Angela
[card_lname] => Taylor
[emailAddress] => xxxxxxxxxxxx
[card_name] => MasterCard
[card_number] => xxxxxxxxxxxxxxx
[exp_month] => 1
[exp_year] => 2014
[card_secu_code] => xxx
[country] => AU
[street] => xxxxxxxxxxx St,
[city] => Sydney
[state] => NSW
[zip] => 2000
[currency]=>AUD
Anybody can help why i am getting this errors. All the parameters are correct i guess.

Reading paypal developer's documentation it says it requires a 5 digits zip code since your country uses 4 digits you might wanna try appending a 0 in front of the zip code. Try it and see if it works.

Related

Getting Failed to connect to host Input Server Uri = https://pilot-payflowpro.paypal.com:443

Getting this response for a very basic paypal payments advanced call:
Transaction failed! Please try again with another payment method.
(server response follows)
Array
(
[STATE] => CA
[RESPMSG] => Failed to connect to host Input Server Uri = https://pilot-payflowpro.paypal.com:443
[SHIPTOSTREET] => 1234 Park Ave
[SHIPTOSTATE] => CA
[STREET] => 123 Main St.
[SHIPTOCITY] => San Jose
[LASTNAME] => Doe
[FIRSTNAME] => John
[SHIPTOZIP] => 95101
[SECURETOKEN] => 8dov2tKpHS02bZjINimuKFAEV
[AMT] => 1.00
[SHIPTOLASTNAME] => Smith
[SECURETOKENID] => MySecTokenID-5547c1b32dc2b
[CITY] => San Jose
[SHIPTOFIRSTNAME] => Jane
[ZIP] => 95101
[RESULT] => -1
[TRXTYPE] => A
)
I'm using php code samples that I obtained from a paypal docs page (actually it linked to a github repo), though I can't seem to find it again among the absurdly convoluted wilderness of extraneous docs that paypal has you trudge through to accomplish the simplest of tasks.
Its a basic iframe demo, layout c. The service is a debian linux distro
Update: Here is a link to the original doc reference that I used to get up and going: https://ppmts.custhelp.com/app/answers/detail/a_id/929
Note that I'm using the "try the demos" zip (php) found in section 6. The demo and the docs there show the iframe as not having the pilot url, which by a suggestion here in the comments says it should be.
In updating the iframe url to the pilot url, I now get a new timeout error:
Array
(
[STATE] => CA
[TYPE] => A
[ACCT] => 1111
[ZIPTOSHIP] => 95101
[BILLTOLASTNAME] => Doe
[BILLTONAME] => John Doe
[SHIPTOCITY] => San Jose
[LASTNAME] => Doe
[PNREF] => B10P7E8A02A7
[TENDER] => CC
[METHOD] => CC
[SHIPTOZIP] => 95101
[ADDRESSTOSHIP] => 1234 Park Ave
[BILLTOFIRSTNAME] => John
[AMT] => 1.00
[SHIPTOCOUNTRY] => US
[TRANSTIME] => 2015-05-05 10:40:36
[NAMETOSHIP] => Jane Smith
[ZIP] => 95101
[BILLTOCOUNTRY] => US
[EXPDATE] => 1215
[STATETOSHIP] => CA
[RESPMSG] => Timeout waiting for Processor response
[COUNTRY] => US
[SHIPTOSTATE] => CA
[BILLTOZIP] => 95101
[SHIPTOSTREET] => 1234 Park Ave
[BILLTOCITY] => San Jose
[TAX] => 0.00
[BILLTOSTATE] => CA
[CARDTYPE] => 0
[FIRSTNAME] => John
[AVSDATA] => XXN
[CITYTOSHIP] => San Jose
[SECURETOKEN] => 88saMEY6aCkyh09bhzHgE1w1i
[SECURETOKENID] => MySecTokenID-5549007e7d1fe
[CITY] => San Jose
[NAME] => John Doe
[COUNTRYTOSHIP] => US
[BILLTOSTREET] => 123 Main St.
[RESULT] => 104
[TRXTYPE] => A
[ADDRESS] => 123 Main St.
)
Any help would be greatly appreciated.
When you are in test environment you need to make sure you are using the endpoint "https://pilot-payflowlink.paypal.com" once you created the secure token.
Apart from that if you are getting "the time out waiting for host error" while using the card "4111111111111111" trying using the any card from before link and it should work fine.
http://www.getcreditcardnumbers.com/

Recurring payment payflow error response "Invalid tender"

I am trying to create recurring profile and I get his log output with error
[METHOD] => CreateRecurringPaymentsProfile
[SUBSCRIBERNAME] => testuser
[PROFILESTARTDATE] => 2014-05-14T16:01:36-04:00
[DESC] => Monthly Payment for Package:Package 4
[MAXFAILEDPAYMENTS] => 1
[AUTOBILLOUTAMT] => NoAutoBill
[TRIALBILLINGPERIOD] => Month
[TRIALBILLINGFREQUENCY] => 1
[TRIALTOTALBILLINGCYCLES] => 1
[TRIALAMT] => 129.00
[BILLINGPERIOD] => Month
[BILLINGFREQUENCY] => 12
[TOTALBILLINGCYCLES] => 0
[AMT] => 129.00
[CURRENCYCODE] => USD
[CREDITCARDTYPE] => MasterCard
[ACCT] => 5473878247587096
[EXPDATE] => 012015
[CVV2] => 962
[STARTDATE] =>
[ISSUENUMBER] =>
[FIRSTNAME] => John
[LASTNAME] => Doe
[STREET] => 1324 Adams Street
[CITY] => Omaha
[STATE] => AL
[COUNTRYCODE] => US
[ZIP] => 68138
[PHONENUM] => 1402935200
[L_PAYMENTREQUEST_0_L_ITEMCATEGORY0] => Digital
[L_PAYMENTREQUEST_0_L_NAME0] => Package 4
[L_PAYMENTREQUEST_0_L_DESC0] => test package
[L_PAYMENTREQUEST_0_L_AMT0] => 129.00
[L_PAYMENTREQUEST_0_L_NUMBER0] => 4
[L_PAYMENTREQUEST_0_L_QTY0] => 3500
RESULT=2&PNREF=A7X06BD15AD4&RESPMSG=Invalid tender.
The description suggests that merchant account does not support said credit card.But in my manager.paypal.com account I see visa/master and other credit cards are supported. I tried with visa/master , for both I get same error. May be I missing something, please help out.
I have paypal payments advanced subscription.
Sounds like maybe you're signed up for Payments Pro, but not for Recurring Payments, which is an add-on feature.
According to the PayPal PayFlow API documentation, receiving a result with the status "2" means:
Invalid tender type. Your merchant bank account does not support the
following credit card type that was submitted.
Source: https://developer.paypal.com/docs/classic/payflow/integration-guide/#result-values-and-respmsg-text

PayPal Express Checkout Shipping Address should not be editable

I have already spent a lot of hours to find an answer for my problem but unfortunately i can't find a soloution.
I implement PayPal (Express Checkout) in our Shop-System. In our shop, the customer enters his shipping address. I don't want the customer to get the option to change his shipping address in PayPal. I only want the shipping address to be displayed which was entered before.
For example, here is an express checkout implementation like I want it:
Shipping Address only displayed:
How can i make this possible?
I use the PayPalSDK for ASP.NET
In your SetExpressCheckout request you can add the ADDROVERRIDE parameter and set its value to 1. Then make sure to include the shipping address parameters in your SEC request as well.
What this will do is simply display the address you pass over to PayPal without the ability for the user to change it.
The value 1 indiciates that the PayPal pages should display the
shipping address set by you in the SetExpressCheckout request, not the
shipping address on file with PayPal. This does not allow the
customer to edit the address here. Must be 1 or 0
Here's a sample of an SEC request I just sent to the PayPal sandbox:
[REQUESTDATA] => Array
(
[USER] => *****
[PWD] => *****
[VERSION] => 97.0
[BUTTONSOURCE] => AngellEYE_PHPClass
[SIGNATURE] => *****
[METHOD] => SetExpressCheckout
[MAXAMT] => 200.00
[RETURNURL] => http://paypal.angelleye.com/standard/samples/DoExpressCheckoutPayment.php
[CANCELURL] => http://paypal.angelleye.com/paypal/class/cancel.php
[REQCONFIRMSHIPPING] => 0
[NOSHIPPING] => 1
[ALLOWNOTE] => 1
[ADDROVERRIDE] => 1
[BRANDNAME] => Angell EYE
[CUSTOMERSERVICENUMBER] => 555-555-5555
[BUYEREMAILOPTIONENABLE] => 1
[SURVEYENABLE] => 1
[BUYERREGISTRATIONDATE] => 2012-07-14T00:00:00Z
[PAYMENTREQUEST_0_AMT] => 100.00
[PAYMENTREQUEST_0_CURRENCYCODE] => USD
[PAYMENTREQUEST_0_ITEMAMT] => 80.00
[PAYMENTREQUEST_0_SHIPPINGAMT] => 15.00
[PAYMENTREQUEST_0_TAXAMT] => 5.00
[PAYMENTREQUEST_0_DESC] => This is a test order.
[PAYMENTREQUEST_0_SHIPTONAME] => Tester Testerson
[PAYMENTREQUEST_0_SHIPTOSTREET] => 123 Test Ave.
[PAYMENTREQUEST_0_SHIPTOCITY] => Kansas City
[PAYMENTREQUEST_0_SHIPTOSTATE] => MO
[PAYMENTREQUEST_0_SHIPTOZIP] => 64111
[PAYMENTREQUEST_0_SHIPTOCOUNTRY] => US
[PAYMENTREQUEST_0_SHIPTOPHONENUM] => 816-555-5555
[PAYMENTREQUEST_0_NOTETEXT] => This is a test note before ever having left the web site.
[PAYMENTREQUEST_0_PAYMENTACTION] => Sale
[L_PAYMENTREQUEST_0_NAME0] => Widget 123
[L_PAYMENTREQUEST_0_DESC0] => Widget 123
[L_PAYMENTREQUEST_0_AMT0] => 40.00
[L_PAYMENTREQUEST_0_NUMBER0] => 123
[L_PAYMENTREQUEST_0_QTY0] => 1
[L_PAYMENTREQUEST_0_ITEMURL0] => http://www.angelleye.com/products/123.php
[L_PAYMENTREQUEST_0_NAME1] => Widget 456
[L_PAYMENTREQUEST_0_DESC1] => Widget 456
[L_PAYMENTREQUEST_0_AMT1] => 40.00
[L_PAYMENTREQUEST_0_NUMBER1] => 456
[L_PAYMENTREQUEST_0_QTY1] => 1
[L_PAYMENTREQUEST_0_ITEMURL1] => http://www.angelleye.com/products/456.php
[L_PAYMENTREQUEST_0_ITEMCATEGORY1] => Digital
)
And here's what I see when I log in to PayPal as the buyer after this SEC call...

Paypal sandbox 'Pending' multicurrency

Im currently using PayPals rest api. When executing payment it is returning as 'Pending' and the reason its stating is 'Multi Currency'.
The reason behind this is because the default 'facilitators' account is set to US i need it to all be in GB. The problem is I can login to user-facilitators#email.co.uk's account on sandbox.paypal.co.uk. I'm entering the email and password (which is 100% correct) and It wont let me login to sandbox so I can change the currency preferences back to GBP.
Does anybody no why?
In order to log into a Sandbox Paypal account, you have to be logged into your Paypal Developer Account
as the default 'facilitators' account is set to US and you want to change it to other country. but this edit is not possible in sandbox.
so an alternate solution is to create an another sandbox account and set it to business account. set your desired country and then currency will be your country currency, automatically.
after doing this, use this business account for testing instead of that default 'facilitators' account.
like this you can create any number of business accounts for any country/currency.
hope this will help to you and understood.
Yes, once we register on Paypal developer site, as default, Paypal will issue us two default test account, one is merchant account and another is user test account. All there are fine.
But the problem is their default currency is US, and We can't change them.
When your Magento store's base currency has been set others, like AU, this issue definitely will come out with following system log:
[CURRENCYCODE] => AUD
[PAYMENTSTATUS] => Pending
[PENDINGREASON] => multicurrency
Create another merchant account and set the same currency with your Magento store, it will be fixed.
payment_paypal_express.log
2014-12-12T01:51:34+00:00 DEBUG (7): Array
(
[url] => https://api-3t.sandbox.paypal.com/nvp
[GetTransactionDetails] => Array
(
[TRANSACTIONID] => 15Y48062WM0910211
[METHOD] => GetTransactionDetails
[VERSION] => 72.0
[USER] => ****
[PWD] => ****
[SIGNATURE] => ****
[BUTTONSOURCE] => OneStepCheckout_SI_MagentoCE
)
[response] => Array
(
[RECEIVEREMAIL] => john.yin.au-facilitator#gmail.com
[RECEIVERID] => VQ37QYGD3SFPW
[EMAIL] => john.yin.au-buyer#gmail.com
[PAYERID] => LXDH2RT89NRAS
[PAYERSTATUS] => verified
[COUNTRYCODE] => US
[SHIPTONAME] => john h
[SHIPTOSTREET] => 33
[SHIPTOSTREET2] => esdfd re
[SHIPTOCITY] => ddw
[SHIPTOSTATE] => AL
[SHIPTOCOUNTRYCODE] => AU
[SHIPTOCOUNTRYNAME] => Australia
[SHIPTOZIP] => 34343
[ADDRESSOWNER] => PayPal
[ADDRESSSTATUS] => Confirmed
[INVNUM] => 100000036
[SALESTAX] => 0.00
[TIMESTAMP] => 2014-12-12T01:51:34Z
[CORRELATIONID] => 2ef746f5f1a77
[ACK] => Success
[VERSION] => 72.0
[BUILD] => 14077178
[FIRSTNAME] => Test
[LASTNAME] => Buyer
[TRANSACTIONID] => 15Y48062WM0910211
[TRANSACTIONTYPE] => cart
[PAYMENTTYPE] => instant
[ORDERTIME] => 2014-12-12T01:50:39Z
[AMT] => 44.00
[TAXAMT] => 0.00
[SHIPPINGAMT] => 0.00
[HANDLINGAMT] => 0.00
[CURRENCYCODE] => AUD
[PAYMENTSTATUS] => Pending
[PENDINGREASON] => multicurrency
[REASONCODE] => None
[PROTECTIONELIGIBILITY] => Eligible
[PROTECTIONELIGIBILITYTYPE] => ItemNotReceivedEligible,UnauthorizedPaymentEligible
[L_NAME0] => color swatch te
[L_NUMBER0] => ZP-D3241-WHITE-L
[L_QTY0] => 1
[L_TAXAMT0] => 0.00
[L_SHIPPINGAMT0] => 0.00
[L_HANDLINGAMT0] => 0.00
[L_CURRENCYCODE0] => AUD
[L_AMT0] => 44.00
)
[__pid] => 30696
)

per-item details ci-merchant and PayPalExpress

I am using ci-merchant and I want to do my cart checkout with PayPal Express.
This is the code I am using:
$this->load->library('merchant');
$this->merchant->load('paypal_express');
$settings = $this->merchant->default_settings();
$settings = array(
'username' => 'bla bla bla.gmail.com',
'password' => 'bla bla bla',
'signature' => 'bla bla bla',
'test_mode' => true);
$this->merchant->initialize($settings);
$params =array(
'amount' => $this->cart->format_number($this->cart->total()),
'currency' => 'EUR',
'return_url' => 'https://www.example.com/checkout/payment_return/123',
'cancel_url' => 'https://www.example.com/checkout',
'description' => 'Esto es desc'
);
$response = $this->merchant->purchase($params);
With the above code I am being redirected to PayPal just fine, but at the items column I only see one unique item.
Now I would like to add per-item description, qty and price. But I don't know the where to include my items array, and wich format should I use. I can't find it on ci-merchant docs. Can anybody explain me?
You just need to setup your $params to include all of the fields you would need to make it work, and you need to make sure you're using version 63.0 or later.
It can be a little tricky, though, because any Express Checkout flow could include more than 1 payment, and each payment included could include more than 1 item, so you'll end up adding 0,1,2, etc. to params.
Here's a sample of SetExpressCheckout with 1 payment that has 2 items on it.
[REQUESTDATA] => Array
(
[USER] => ***
[PWD] => ***
[VERSION] => 97.0
[BUTTONSOURCE] => AngellEYE_PHPClass
[SIGNATURE] => ***
[METHOD] => SetExpressCheckout
[MAXAMT] => 200.00
[RETURNURL] => http://paypal.angelleye.com/standard/samples/DoExpressCheckoutPayment.php
[CANCELURL] => http://paypal.angelleye.com/paypal/class/cancel.php
[ALLOWNOTE] => 1
[HDRIMG] => http://paypal.angelleye.com/images/hdrimg.jpg
[SOLUTIONTYPE] => Sole
[LANDINGPAGE] => Billing
[BRANDNAME] => Angell EYE
[CUSTOMERSERVICENUMBER] => 555-555-5555
[BUYEREMAILOPTIONENABLE] => 1
[PAYMENTREQUEST_0_AMT] => 100.00
[PAYMENTREQUEST_0_CURRENCYCODE] => USD
[PAYMENTREQUEST_0_ITEMAMT] => 80.00
[PAYMENTREQUEST_0_SHIPPINGAMT] => 15.00
[PAYMENTREQUEST_0_TAXAMT] => 5.00
[PAYMENTREQUEST_0_DESC] => This is a test order.
[PAYMENTREQUEST_0_NOTETEXT] => This is a test note before ever having left the web site.
[PAYMENTREQUEST_0_PAYMENTACTION] => Sale
[L_PAYMENTREQUEST_0_NAME0] => Widget 123
[L_PAYMENTREQUEST_0_DESC0] => Widget 123
[L_PAYMENTREQUEST_0_AMT0] => 40.00
[L_PAYMENTREQUEST_0_NUMBER0] => 123
[L_PAYMENTREQUEST_0_QTY0] => 1
[L_PAYMENTREQUEST_0_ITEMURL0] => http://www.angelleye.com/products/123.php
[L_PAYMENTREQUEST_0_ITEMCATEGORY0] => Digital
[L_PAYMENTREQUEST_0_NAME1] => Widget 456
[L_PAYMENTREQUEST_0_DESC1] => Widget 456
[L_PAYMENTREQUEST_0_AMT1] => 40.00
[L_PAYMENTREQUEST_0_NUMBER1] => 456
[L_PAYMENTREQUEST_0_QTY1] => 1
[L_PAYMENTREQUEST_0_ITEMURL1] => http://www.angelleye.com/products/456.php
[L_PAYMENTREQUEST_0_ITEMCATEGORY1] => Digital
)
That results in the following when redirected to PayPal..
CI Merchant doesn't support listing order items in PayPal out of the box. There is a pull request which supports this, but it won't be merged into master until we work around some tax calculation and rounding issues.
Until it's supported officially, you may want to try using the forked version to achieve this, or simply edit the PayPal driver yourself to pass through the item data.