paypal php 方式,如何使用PHP向paypal汇款

我已将客户的paypal电子邮件地址存储在数据库中,我想使用该电子邮件地址向他们发送资金.我正在使用PHP.

任何人请建议如何做到这一点.

解决方法:

我一直在寻找同样的问题,这里有什么对我有用.

在“沙盒”模式下测试并使用NVP(而不是SOAP).

您的服务器必须支持CURL,以验证其使用:

echo 'curl extension/module loaded/installed: ';

echo ( !extension_loaded('curl')) ? 'no' : 'yes';

echo "
\n";

phpinfo(INFO_MODULES); // just to be sure

?>

如果未加载或安装,请询问您的主机或get it here,否则请继续:

// code modified from source: https://cms.paypal.com/cms_content/US/en_US/files/developer/nvp_MassPay_php.txt

// documentation: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howto_api_masspay

// sample code: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/library_code

// eMail subject to receivers

$vEmailSubject = 'PayPal payment';

/** MassPay NVP example.

*

* Pay one or more recipients.

*/

// For testing environment: use 'sandbox' option. Otherwise, use 'live'.

// Go to www.x.com (PayPal Integration center) for more information.

$environment = 'sandbox'; // or 'beta-sandbox' or 'live'.

/**

* Send HTTP POST Request

*

* @param string The API method name

* @param string The POST Message fields in &name=value pair format

* @return array Parsed HTTP Response body

*/

function PPHttpPost($methodName_, $nvpStr_)

{

global $environment;

// Set up your API credentials, PayPal end point, and API version.

// How to obtain API credentials:

// https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_NVPAPIBasics#id084E30I30RO

$API_UserName = urlencode('my_api_username');

$API_Password = urlencode('my_api_password');

$API_Signature = urlencode('my_api_signature');

$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;

}

// Set request-specific fields.

$emailSubject = urlencode($vEmailSubject);

$receiverType = urlencode('EmailAddress');

$currency = urlencode('USD'); // or other currency ('GBP', 'EUR', 'JPY', 'CAD', 'AUD')

// Receivers

// Use '0' for a single receiver. In order to add new ones: (0, 1, 2, 3...)

// Here you can modify to obtain array data from database.

$receivers = array(

0 => array(

'receiverEmail' => "user1@paypal.com",

'amount' => "20.00",

'uniqueID' => "id_001", // 13 chars max

'note' => " payment of commissions"), // I recommend use of space at beginning of string.

1 => array(

'receiverEmail' => "user2@paypal.com",

'amount' => "162.38",

'uniqueID' => "A47-92w", // 13 chars max, available in 'My Account/Overview/Transaction details' when the transaction is made

'note' => " payoff of what I owed you" // space again at beginning.

)

);

$receiversLenght = count($receivers);

// Add request-specific fields to the request string.

$nvpStr="&EMAILSUBJECT=$emailSubject&RECEIVERTYPE=$receiverType&CURRENCYCODE=$currency";

$receiversArray = array();

for($i = 0; $i < $receiversLenght; $i++)

{

$receiversArray[$i] = $receivers[$i];

}

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 = PPHttpPost('MassPay', $nvpStr);

if("SUCCESS" == strtoupper($httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($httpParsedResponseAr["ACK"]))

{

exit('MassPay Completed Successfully: ' . print_r($httpParsedResponseAr, true));

}

else

{

exit('MassPay failed: ' . print_r($httpParsedResponseAr, true));

}

?>

祝好运!

标签:php,currency,paypal

来源: https://codeday.me/bug/20190926/1821517.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值