使用Paypal自适应支付自动发送资金
以下是用户场景: “John在网站上的帐户中有5个虚拟信用,他可以通过点击网站上的按钮将虚拟信用转换为真实货币。然后,无论John是否拥有paypal帐户,网站都会通过paypal向他提供真实货币。” 我想知道是否有可能将这种情况付诸实施 当然,出于安全原因,我将在服务器端签入安全操作所需的所有数据 它是否可以在没有网站管理员任何操作的情况下自动执行 谢谢你的回答 编辑: 我找到了以下帖子: 我将尝试根据我的场景调整它。今天当我完成集成后,我将更新我的帖子 编辑2: 看起来一切正常,但我试图从www.x.com获得一个应用程序ID 他们询问我如何使用API: 您好,谢谢您的提交 在我们继续审查之前,您能否澄清您所要求的API使用Paypal自适应支付自动发送资金,paypal,paypal-adaptive-payments,Paypal,Paypal Adaptive Payments,以下是用户场景: “John在网站上的帐户中有5个虚拟信用,他可以通过点击网站上的按钮将虚拟信用转换为真实货币。然后,无论John是否拥有paypal帐户,网站都会通过paypal向他提供真实货币。” 我想知道是否有可能将这种情况付诸实施 当然,出于安全原因,我将在服务器端签入安全操作所需的所有数据 它是否可以在没有网站管理员任何操作的情况下自动执行 谢谢你的回答 编辑: 我找到了以下帖子: 我将尝试根据我的场景调整它。今天当我完成集成后,我将更新我的帖子 编辑2: 看起来一切正常,但我试图从w
- 您能否澄清您使用的“隐性付款”将用于从您的PayPal帐户向您的用户付款?如果这不是必需的,请从您提交的“应用程序使用的服务”-“自适应支付”-“基本支付”部分取消选择
- 您还选择了Preapprovals,这是一种需要深入审查的高级API。这将用于与客户创建账单协议(如“订阅”业务模式)。如果需要,请填写“预批准条款”字段,并告知我们如何在您的网站上测试预批准的付款流程。如果不是必需的,请从您提交的“应用程序使用的服务”-“自适应支付”部分取消选择
$PayRequestFields = array(
'ActionType' => 'PAY', // Required. Whether the request pays the receiver or whether the request is set up to create a payment request, but not fulfill the payment until the ExecutePayment is called. Values are: PAY, CREATE, PAY_PRIMARY
如果将“支付”值更改为“创造”值,则不会产生任何效果
忠实地 您可以将其设置为自动化。如果您特别希望使用自适应支付,您可能希望使用自适应支付支付API将钱发送给John。但是,John需要一个PayPal才能访问资金和提取资金。我使用此代码在沙箱模式下工作,尚未尝试live:
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var request = (HttpWebRequest)WebRequest.Create("https://svcs.sandbox.paypal.com/AdaptivePayments/Pay");
request.ContentType = "application/json";
request.Method = "POST";
request.Headers.Add("X-PAYPAL-SECURITY-USERID", apiUsername);
request.Headers.Add("X-PAYPAL-SECURITY-PASSWORD", apiPassword);
request.Headers.Add("X-PAYPAL-SECURITY-SIGNATURE", apiSig);
request.Headers.Add("X-PAYPAL-APPLICATION-ID", "APP-80W284485P519543T"); // sandbox app id
request.Headers.Add("X-PAYPAL-REQUEST-DATA-FORMAT", "JSON");
request.Headers.Add("X-PAYPAL-RESPONSE-DATA-FORMAT", "JSON");
JObject j = new JObject();
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
string json = "{ \"actionType\": \"PAY\", \"currencyCode\": \"GBP\", \"useCredentials\": \"FALSE\", \"senderEmail\": \"admin@example.com\",\"ipnNotificationUrl\": \"http://example.com/IPN.aspx\", \"receiverList\": {\"receiver\": [{\"amount\": \"1.00\", \"email\": \"receiver@gmail.com\" }] }, \"returnUrl\": \"http://example.com/thanks.aspx\", \"cancelUrl\": \"http://example.com/cancel.aspx\", \"requestEnvelope\": { \"errorLanguage\": \"en_US\", \"detailLevel\": \"ReturnAll\" }}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)request.GetResponse();
string sResult = "";
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
sResult = streamReader.ReadToEnd();
}
需要注意的几件事:
- 确保请求是有效的JSON,并且没有意外地弄乱语法
- 确保在请求参数上使用正确的套管
- 如果发布到沙盒url,请确保您正在使用沙盒凭据
- 在指定的IPN url中添加代码以检查交易(金额、收件人等)
这将自动从您的帐户向不需要您登录即可授权的收件人付款。我并不是专门想使用自适应付款,如果有更好的方式使用贝宝进行这种情况,我真的很乐意。当我阅读文档时,没有关于如何正确操作的具体说明。为了放一个paypal按钮,没问题,我在marchand帐户(pro)中创建了一个ID,将代码集成到网站中,瞧!但是对于一个用户不能点击自动给他钱的按钮,这让我很困惑!有两种方法可以向帐户进行支付,一种是使用自适应支付API,另一种是MassPay。适应性支付将是更好的方式。您需要做的就是创建一个按钮,使用Adaptive Payments Pay API,让它动态填充您将资金发送给谁的金额和电子邮件地址,然后提交。那你的任务完成了。嗨!事实上,我使用了自适应支付,它似乎工作得很好!不过,我还需要做进一步的测试,以确保一切正常!当我确信一切顺利时,我会尽快公布所有细节。我还试图通过x.com获取应用程序ID。他们正在询问我如何使用API的细节。我会把问题放在编辑栏里。