I want to integrate Payflow pro reference transaction (Credit card) in my cart. I am using payflow manager test account and enabled reference transactions to "Yes" in manage security tab.
I could successfully transfer test payment first time, this is my response - Array ( [RESULT] => 0 [PNREF] => A70A7EB1773A [RESPMSG] => Approved [AUTHCODE] => 928PNI [AVSADDR] => X [AVSZIP] => X [CVV2MATCH] => Y [HOSTCODE] => A [PROCAVS] => U [PROCCVV2] => M [VISACARDLEVEL] => 12 [IAVS] => X [PREFPSMSG] => No Rules Triggered [POSTFPSMSG] => No Rules Triggered )
But when I try to do reference transactions, i am getting below response - Array ( [RESULT] => 23 [PNREF] => A1008A6A9700 [RESPMSG] => Invalid account number ), I am using same PNREF num as ORIGID and successfully completed payment at initial time. Then why it is showing "Invalid account number" ?
Below arguments I have used for reference transaction - $nvpstr = "TRXTYPE=S&TENDER=C&PWD=an****&PARTNER=PayPal&VENDOR=an****&USER=an****&ORIGID=A70A7EB1773A&AMT=2.00";
Do we need to call paypal team to enable reference transaction for TEST ACCOUNT also ? Please help me to resolve the issue
It seems like you are not passing the "TRXTYPE=S" along with the other parameters. Even though in your above request you have mentioned "TRXTYPE=S" but still I believe somehow it is not being sent to the PayPal .
Related
See how I started complete procedure,
Step 1. First called SetExpressCheckout,
AMT=0.00
PAYMENTREQUEST_0_AMT=0.00
PAYMENTACTION
BILLINGAGREEMENTDESCRIPTION
BILLINGTYPE=MerchantInitiatedBilling
RETURNURL
CANCELURL
CURRENCYCODE
SOLUTIONTYPE=Sole
LOCALECODE=us
LANDINGPAGE=Billing
step 2. then I called CreateBillingAgreement
TOKEN
PAYERID
PAYMENTACTION
AMT
CURRENCYCODE
IPADDRESS
It returns Billing Id.
Step 3. calling DoReferenceTransaction with parameters:
&REFERENCEID=B-0GJ65589SA3528026 //billing Id generated by CreateBillingAgreement method
&PAYMENTACTION=Sale
&AMT=3.00
&CURRENCYCODE=USD
&IPADDRESS=paypalrecurring.com
&L_ITEMCATEGORY0=Digital
&DESC=Test+Recurring+Payment%28+%243.00+monthly%29
&L_PAYMENTREQUEST_0_ITEMCATEGORY0=Digital
&L_PAYMENTREQUEST_0_QTY0=1
&L_PAYMENTREQUEST_0_NAME0=Test Name
&L_PAYMENTREQUEST_0_AMT0=3.00
&L_NAME0=Test Name
&L_DESC0=Test+Recurring+Payment%28+%243.00+monthly%29
&L_AMT0=3.00
&ITEMAMT=3.00
&L_QTY0=1
But the aerror ocuurs:
Array
(
[TIMESTAMP] => 2015-11-03T11:29:51Z
[CORRELATIONID] => 811b64f880aff
[ACK] => Failure
[VERSION] => 69
[BUILD] => 000000
[L_ERRORCODE0] => 10004
[L_SHORTMESSAGE0] => Invalid Data
[L_LONGMESSAGE0] => This transaction cannot be processed.
[L_SEVERITYCODE0] => Error
[TRANSACTIONTYPE] => None
[PAYMENTTYPE] => None
[ORDERTIME] => 1970-01-01T00:00:00Z
[PAYMENTSTATUS] => None
[PENDINGREASON] => None
[REASONCODE] => None
)
Please tell me where I am wrong.
Note: Paypal team said RT enabled. (Sandbox testing)
First try to set
RECURRING
field of DoReferenceTransaction API call.
If it's without success use method CreateRecurringPaymentsProfile instead DoReferenceTransaction. API Documentation link.
I recommend to not use paypal sandbox - just use https://api-3t.paypal.com/nvp and set price to 0.01 - this will prevent double testing
Error 10004 has appear when has incompatibility between methods SetExpressCheckout and ( in your case ) DoReferenceTransaction
About error "Express Checkout Digital Goods is no longer available for new integrations" :
We made a contact with Paypal support to activate the Digital Goods for our main paypal account. Also we tried many times to activate Digital Goods inside our paypal account and after several days this error disappear like a miracle :)
I am not so sure how I resolve this error but after trying many different tests ( including asking PayPal support ) he just disappear. So my advice is to continue trying with different ways and combinations
I have a working application that makes payments via adaptive chained payments. This works fine, however I'm now implementing an IPN Listener to handle refunds. I'm testing in the sandbox.
I've confirmed that when a refund is made in PayPal directly the IPN Listener gets a refund message however I don't see any of the Variables that the document talks about regarding refund amounts.
The response I see is in the post data is:
11/Mar/2015:09:33:01] (ipn_handler) [-1-] : POST
array (
'transaction' =>
array (
0 => 'NONE',
1 => 'Refunded',
),
'log_default_shipping_address_in_transaction' => 'false',
'action_type' => 'PAY',
'ipn_notification_url' => 'http://example.com/paypal/ipn_handler.php',
'charset' => 'windows-1252',
'transaction_type' => 'Adjustment',
'notify_version' => 'UNVERSIONED',
'reason_code' => 'Refund',
'cancel_url' => 'http://example.com/paymentCancel.php',
'verify_sign' => 'AFcWxxxxxxxxxxxxxxxxxxxxwy5O5OqOKKa.xxxx',
'sender_email' => 'zakbuyer#gmail.com',
'fees_payer' => 'EACHRECEIVER',
'return_url' => 'http://example.com/paymentSuccess.php',
'memo' => 'purchase of item Gear Shift cufflink',
'reverse_all_parallel_payments_on_error' => 'false',
'pay_key' => 'AP-5KHxxxxxxxxxxxxxxx',
'status' => 'COMPLETED',
'test_ipn' => '1',
'payment_request_date' => 'Thu Mar 05 01:09:00 PST 2015',
)
I was expecting to find mc_gross and mc_currency etc.
With the data provided I can look up the transaction no problem but I can't handle if a partial refund is done.
I'm finding my information at https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/
When working with Adaptive Payments there are actually two separate IPN listeners that need to be acknowledged.
The value that you're setting in the IPNNotificationURL parameter of your Adaptive Payments API requests is an application specific IPN. The data sent to that listener is data that an application owner might want to help track transactions that are getting run through their app, but this data is very limited in terms of actual transaction details.
To get the parameters you're expecting, IPN would need to be configured in the seller account (in this case, the refunder's account). Then when the refund takes place PayPal would send an IPN to that listener with the parameters you're expecting to see.
I am using Paypal ExpressCheckout method for my payments. I need to enhance my payment like paying multiple merchants using Express Checkout with Parallel Payments. And I have gone through the tutorial. When I submit, I am getting the error. My sent data is
&METHOD=SetExpressCheckout
&RETURNURL=http%3A%2F%2Fwww.mydomain.net%2Fpaypal_process.php
&CANCELURL=http%3A%2F%2Fwww.mydomain.net%2Fcancel.php
&PAYMENTREQUEST_0_CURRENCYCODE=SGD
&PAYMENTREQUEST_0_AMT=50
&PAYMENTREQUEST_0_ITEMAMT=50
&PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID=email#mydomain.com.sg
&PAYMENTREQUEST_0_PAYMENTACTION=Sale
&PAYMENTREQUEST_0_PAYMENTREQUESTID=CART26488-PAYMENT0
&L_PAYMENTREQUEST_0_NAME0=Depart San Jose Feb 12 at 12:10PM Arrive in Baltimore at 10:22PM
&L_PAYMENTREQUEST_0_NUMBER0=Flight 522
&L_PAYMENTREQUEST_0_QTY0=1
&L_PAYMENTREQUEST_0_AMT0=50
&L_PAYMENTREQUEST_0_DESC0=SJC Terminal 1. Flight time: 7 hours 12 minutes
Error :
Error : This account is not approved for the authorization service. To enable this service, contact PayPal customer service
Array
(
[TIMESTAMP] => 2014%2d10%2d20T09%3a36%3a03Z
[CORRELATIONID] => 4a7ab68babd8b
[ACK] => Failure
[VERSION] => 109%2e0
[BUILD] => 13443904
[L_ERRORCODE0] => 11623
[L_SHORTMESSAGE0] => This%20account%20is%20not%20approved%20for%20the%20authorization%20service%2e
[L_LONGMESSAGE0] => This%20account%20is%20not%20approved%20for%20the%20authorization%20service%2e%20To%20enable%20this%20service%2c%20contact%20PayPal%20customer%20service
[L_SEVERITYCODE0] => Error
)
I have surfed through internet about this error. But I cannot find the one. Please help me to achieve this.
After a surf from utter basics, I have found the answer. The PAYMENTREQUEST_0_PAYMENTACTION paramater value should be url encoded before sent.
"PAYMENTREQUEST_0_PAYMENTACTION='".urlencode("Sale")
It is because the email address PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID email#mydomain.com.sg is not confirmed.
Try to confirm the email address and execute the API call again.
I am working first time with paypal adaptive payment (Chained Payment) and trying to create a demo with sendbox account.
I am using Angell EYE PayPal PHP Library for this.
I have changed configration file and set all paypal account details.
Now when I am creating a chained payment with "ActionType" => "PAY_PRIMARY", then it shows success message with below response:
Array
(
[Errors] => Array
(
)
[Ack] => Success
[Build] => 11853342
[CorrelationID] => 3c9d6f6c63af1
[Timestamp] => 2014-07-21T23:16:31.579-07:00
[PayKey] => AP-xxxxxxxxxx
[PaymentExecStatus] => CREATED
[RedirectURL] => https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=AP-6T168633BC6592444
[XMLRequest] => ReturnAllen_USPAY_PRIMARYhttp://sandbox.domain.com/cancel.phpAPP-80W284485P519543T192.168.3.11USDPRIMARYRECEIVER500.00aus_user1#gd.comtrue50.00aus_user2#gd.comfalse20.00rajvi#origzo.comfalsehttp://sandbox.domain.com/return.php
[XMLResponse] => 2014-07-21T23:16:31.579-07:00Success3c9d6f6c63af111853342AP-6T168633BC6592444CREATED
)
Then I tried to execute ExecutePayment API call it gives me response as below:
Array
(
[Errors] => Array
(
[0] => Array
(
[Receiver] =>
[Category] => Application
[Domain] => PLATFORM
[ErrorID] => 550001
[ExceptionID] =>
[Message] => This payment request must be authorized by the sender
[Parameter] =>
[Severity] => Error
[Subdomain] => Application
)
)
[Ack] => Failure
[Build] => 11853342
[CorrelationID] => b3d52c547fc23
[Timestamp] => 2014-07-21T23:16:48.190-07:00
[PaymentExecStatus] =>
[XMLRequest] => ReturnAllen_USAP-6T168633BC6592444
[XMLResponse] => 2014-07-21T23:16:48.190-07:00Failureb3d52c547fc2311853342550001PLATFORMApplicationErrorApplicationThis payment request must be authorized by the sender
)
I think it gives me some permission error but not getting the exact response and how to solve it. Please guide me on this.
Thanks in advance.
After you make the initial Pay request you'll see the result is giving you a RedirectURL. You need to redirect the user to that URL so they can login and agree to complete the payment.
It sounds like you're skipping straight to ExecutePayment without the user ever having been sent over to PayPal to authorize the payment, which is why you're getting that error at that point.
As of now you'll see you can view that URL it's showing for RedirectURL (https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=AP-6T168633BC6592444) and it's loading the PayPal login. Until that is done with a sandbox buyer account, ExecutePayment will not work.
Also, I'm curious if you really mean to do a delayed chained payment..?? Since you were immediately attempting to run execute payment you may only need a regular chained payment, so you would just use PAY instead of PAY_PRIMARY. Then you wouldn't need ExecutePayment at all.
Everything runs well, users are directed to paypal, commit the payment, and returns "SUCCESS" code and comes back to the merchant website. But when I log into the user account and merchant account, I can not see any transactions. None after several hours.
I am use 3nd party integration and sandbox testing. (I can send money directly from the sandbox accounts. )
Here are the strings.
METHOD] => SetExpressCheckout <p>
[VERSION] => 65.1 <p>
[PWD] => 13012.. <p>
[USER] => emily....<p>
[SIGNATURE] => AY-...<p>
[ADDRESSOVERRIDE] => 1 <p>
[L_NAME0] => 106791TBL3 <p>
[L_AMT0] => 18 <p>
[L_QTY0] => 1 <p>
[L_DESC0] => ...<p>
[MAXAMT] => 43 <p>
[AMT] => 18 <p>
[ITEMAMT] => 18<p>
[CALLBACKTIMEOUT] => 4<p>
[INSURANCEOPTIONOFFERED] => false<p>
[ReturnUrl] => https://.. <p>
[CANCELURL] => https://..<p>
[CURRENCYCODE] => USD <p>
[PAYMENTACTION] => sale<p>
You should see transactions even in the sandbox environment, but you MUST log in as the test-merchant that you used in your settings, and you MUST log in in the sandbox environment.
Easiest way is to login with your developer account first, then list your test-accounts, select the merchant account and then click ad the end of the page "Enter sandbox site", that would give you a login prompt where you would enter the test-merchant password. If you don't know it, reset it from the developer site.
Check a mail message sent by IPN service – it should contain the “TransactionID” field – the identifier of the successfully submitted transaction.