如何通过 API 将钱从 PayPal 帐户转移到另一个 PayPal 帐户 [英] How to transfer money from PayPal account to another PayPal account via API

查看:47
本文介绍了如何通过 API 将钱从 PayPal 帐户转移到另一个 PayPal 帐户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我花了很长时间寻找一种方法,可以通过 API 从企业贝宝向多个用户的贝宝账户转账.IE.我有收件人的贝宝电子邮件地址,我想通过 API 将 X 笔资金从我们的帐户转移到他们的帐户.

I have spent a long time looking for a way to transfer money from a business paypal via an API to several users' paypal accounts. I.e. I have the recipient's paypal email address and I would like to transfer X funds from our account to theirs via API.

PayPal 自适应支付似乎是正确的,但我看不到正确的命令来让它工作(并避免用户必须验证一个步骤,即整个过程不能自动化)

PayPal adaptive payments seems along the right lines, but I can't see the right commands to get it to work (and avoid the user having to verify a step, i.e. the whole process cant be automated)

很多 of other 类似 问题,但没有满意的答复,特别是因为 MassPay 不能在美国以外的地方使用 paypal 告诉我今天打电话.

There are lots of other similar questions on SO, but none have satisfactory responses, especially since MassPay cant be used outside of the US paypal told me on the phone today.

非常感谢任何帮助或经验 - 谢谢!

Any help or experience would be hugely appreciated - thank you!

推荐答案

事实上,它没有经过测试,但它来自一段运行良好的代码,我只是不想复制和粘贴它;-)此代码使用 Adaptive Payments PayPal API.

As it is, it isn't tested, but it comes from a piece of code that works well, I just didn't want to copy and paste that ;-) This code uses the Adaptive Payments PayPal API.

这是来源

$payLoad=array();

//prepare the receivers
$receiverList=array();
$counter=0;
$receiverList["receiver"][$counter]["amount"]=$r["withdrawalAmount"];
$receiverList["receiver"][$counter]["email"]=$r["paypalEmail"];
$receiverList["receiver"][$counter]["paymentType"]="SERVICE";//this could be SERVICE or PERSONAL (which makes it free!)
$receiverList["receiver"][$counter]["invoiceId"]=$r["withdrawalID"];//NB that this MUST be unique otherwise paypal will reject it and get shitty. However it is a totally optional field

//prepare the call
$payLoad["actionType"]="PAY";
$payLoad["cancelUrl"]="http://www.example.com";//this is required even though it isnt used
$payLoad["returnUrl"]="http://www.example.com";//this is required even though it isnt used
$payLoad["currencyCode"]="EUR";
$payLoad["receiverList"]=$receiverList;
$payLoad["feesPayer"]="EACHRECEIVER";//this could be SENDER or EACHRECEIVER
//$payLoad["fundingConstraint"]=array("allowedFundingType"=>array("fundingTypeInfo"=>array("fundingType"=>"BALANCE")));//defaults to ECHECK but this takes ages and ages, so better to reject the payments if there isnt enough money in the account and then do a manual pull of bank funds through; more importantly, echecks have to be accepted/rejected by the user and i THINK balance doesnt
$payLoad["sender"]["email"]=$ppemail;//the paypal email address of the where the money is coming from

//run the call
$API_Endpoint = "https://svcs$ppapicall.paypal.com/AdaptivePayments/Pay";
$payLoad["requestEnvelope"]=array("errorLanguage"=>urlencode("en_US"),"detailLevel"=>urlencode("ReturnAll"));//add some debugging info the payLoad and setup the requestEnvelope
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $API_Endpoint);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
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);
curl_setopt($ch, CURLOPT_HTTPHEADER,  array(
    'X-PAYPAL-REQUEST-DATA-FORMAT: JSON',
    'X-PAYPAL-RESPONSE-DATA-FORMAT: JSON',
    'X-PAYPAL-SECURITY-USERID: '. $ppuserid,
    'X-PAYPAL-SECURITY-PASSWORD: '. $pppass,
    'X-PAYPAL-SECURITY-SIGNATURE: '. $ppsig,
    'X-PAYPAL-APPLICATION-ID: '. $ppappid
));  
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payLoad));//
$response = curl_exec($ch);
$response = json_decode($response, 1);

//analyse the output
$payKey = $response["payKey"];
$paymentExecStatus=$response["paymentExecStatus"];
$correlationId=$response["responseEnvelope"]["correlationId"];
$paymentInfoList = isset($response["paymentInfoList"]) ? $response["paymentInfoList"] : null;

if ($paymentExecStatus<>"ERROR") {

foreach($paymentInfoList["paymentInfo"] as $paymentInfo) {//they will only be in this array if they had a paypal account
$receiverEmail = $paymentInfo["receiver"]["email"];
$receiverAmount = $paymentInfo["receiver"]["amount"];
$withdrawalID = $paymentInfo["receiver"]["invoiceId"];
$transactionId = $paymentInfo["transactionId"];//what shows in their paypal account
$senderTransactionId = $paymentInfo["senderTransactionId"];//what shows in our paypal account
$senderTransactionStatus = $paymentInfo["senderTransactionStatus"];
$pendingReason = isset($paymentInfo["pendingReason"]) ? $paymentInfo["pendingReason"] : null;
}

}else{
//deal with it
}

这篇关于如何通过 API 将钱从 PayPal 帐户转移到另一个 PayPal 帐户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆