Why money is not transferred through Paypal MassApi, although success is in return

Hi, I am integrating MassPay Api into my project. I want to send bulk payments via masspay api, I integrate on codeigniter. I created two functions for this and received a correlation ID and a success message, but when I see that my money is not transferred in the sandbox mailbox and there are no transactions in my sandbox account.

This is my code, please tell me how I can configure

public function PPHttpPost ($ methodName_, $ nvpStr_) {

$environment = 'sandbox'; // Set up your API credentials, PayPal end point, and API version. $API_UserName = urlencode('sufyan_api1.xcluesiv.com'); $API_Password = urlencode('FQP8TTSXK8QHRCTM'); $API_Signature = urlencode('Ap7D643r8OUdvdzrOomgF0ATl.qSAygx3ERPaDvqm0umQ6aZwiX3t3r5'); $API_Endpoint = "https://api-3t.paypal.com/nvp"; if("sandbox" === $environment || "beta-sandbox" === $environment) { $API_Endpoint = "https://api-3t.$environment.paypal.com/nvp"; } $version = urlencode('51.0'); // Set the curl parameters. $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $API_Endpoint); curl_setopt($ch, CURLOPT_VERBOSE, 1); // Turn off the server and peer verification (TrustManager Concept). curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); // Set the API operation, version, and API signature in the request. $nvpreq = "METHOD=$methodName_&VERSION=$version&PWD=$API_Password&USER=$API_UserName&SIGNATURE=$API_Signature$nvpStr_"; // Set the request as a POST FIELD for curl. curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq); // Get response from the server. $httpResponse = curl_exec($ch); if(!$httpResponse) { exit("$methodName_ failed: ".curl_error($ch).'('.curl_errno($ch).')'); } // Extract the response details. $httpResponseAr = explode("&", $httpResponse); $httpParsedResponseAr = array(); foreach ($httpResponseAr as $i => $value) { $tmpAr = explode("=", $value); if(sizeof($tmpAr) > 1) { $httpParsedResponseAr[$tmpAr[0]] = $tmpAr[1]; } } if((0 == sizeof($httpParsedResponseAr)) || !array_key_exists('ACK', $httpParsedResponseAr)) { exit("Invalid HTTP Response for POST request($nvpreq) to $API_Endpoint."); } return $httpParsedResponseAr; } 

public function paymultiple () {

 // Set request-specific fields. $emailSubject =urlencode('This is created by sufyan'); $receiverType = urlencode('EmailAddress'); $currency = urlencode('USD'); // or other currency ('GBP', 'EUR', 'JPY', 'CAD', 'AUD') // Add request-specific fields to the request string. $nvpStr="&EMAILSUBJECT=$emailSubject&RECEIVERTYPE=$receiverType&CURRENCYCODE=$currency"; $receiversArray = array(); for($i = 0; $i < 3; $i++) { $receiverData = array( 'receiverEmail' => " engr.saadasif@gmail.com ", 'amount' => "26.00", 'uniqueID' => "12", 'note' => "this is gift for you"); $receiversArray[$i] = $receiverData; } foreach($receiversArray as $i => $receiverData) { $receiverEmail = urlencode($receiverData['receiverEmail']); $amount = urlencode($receiverData['amount']); $uniqueID = urlencode($receiverData['uniqueID']); $note = urlencode($receiverData['note']); $nvpStr .= "&L_EMAIL$i=$receiverEmail&L_Amt$i=$amount&L_UNIQUEID$i=$uniqueID&L_NOTE$i=$note"; } // Execute the API operation; see the PPHttpPost function above. $httpParsedResponseAr = $this->PPHttpPost('MassPay', $nvpStr); if("SUCCESS" == strtoupper($httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($httpParsedResponseAr["ACK"])) { echo $email = $httpParsedResponseAr["receiver_email"]; echo $amount = $httpParsedResponseAr["mc_currency_x"]; exit('MassPay Completed Successfully: '.print_r($httpParsedResponseAr, true)); } else { exit('MassPay failed: ' . print_r($httpParsedResponseAr, true)); } } 

And I also allow ipn, and I give url this in ipn this is my ipn address: http://xxxx.com/paypal/PPHttpPost

Please help me how can I transfer money through masspay api

+6
source share
1 answer

I used https://github.com/paypal/merchant-sdk-php

 //Paypal Mass Pay integration $massPayRequest = new MassPayRequestType(); $massPayRequest->MassPayItem = array(); $masspayItem = new MassPayRequestItemType(); $masspayItem->Amount = new BasicAmountType(PAYPAL_CURRENCY, $input['amount']); $masspayItem->ReceiverEmail = $input['email']; $massPayRequest->MassPayItem[] = $masspayItem; $massPayReq = new MassPayReq(); $massPayReq->MassPayRequest = $massPayRequest; $paypalService = new PayPalAPIInterfaceServiceService(); $massPayResponse = $paypalService->MassPay($massPayReq); // Call paypal mass pay 

It works for me, it requires the amount of user, currency and email, which you need to transfer the amount.

If you created a sandbox account using abc@gmail.com , then paypal create an account with a new email address, for example abc-facilatator@gmail.com , you need to check the new email ID. Paypal will transfer the amount to this email id in case of a sandbox

In real time, if the recipient of the PayPal account is not available with the specified email address. Then also the amount of PayPal transfer to this letter. To access this amount, the user must create an account with this email id.

+1
source

Source: https://habr.com/ru/post/974200/


All Articles