使用Paypal自适应支付自动发送资金

使用Paypal自适应支付自动发送资金,paypal,paypal-adaptive-payments,Paypal,Paypal Adaptive Payments,以下是用户场景: “John在网站上的帐户中有5个虚拟信用,他可以通过点击网站上的按钮将虚拟信用转换为真实货币。然后,无论John是否拥有paypal帐户,网站都会通过paypal向他提供真实货币。” 我想知道是否有可能将这种情况付诸实施 当然,出于安全原因,我将在服务器端签入安全操作所需的所有数据 它是否可以在没有网站管理员任何操作的情况下自动执行 谢谢你的回答 编辑: 我找到了以下帖子: 我将尝试根据我的场景调整它。今天当我完成集成后,我将更新我的帖子 编辑2: 看起来一切正常,但我试图从w

以下是用户场景:

“John在网站上的帐户中有5个虚拟信用,他可以通过点击网站上的按钮将虚拟信用转换为真实货币。然后,无论John是否拥有paypal帐户,网站都会通过paypal向他提供真实货币。”

我想知道是否有可能将这种情况付诸实施

当然,出于安全原因,我将在服务器端签入安全操作所需的所有数据

它是否可以在没有网站管理员任何操作的情况下自动执行

谢谢你的回答

编辑:

我找到了以下帖子:

我将尝试根据我的场景调整它。今天当我完成集成后,我将更新我的帖子

编辑2:

看起来一切正常,但我试图从www.x.com获得一个应用程序ID 他们询问我如何使用API:

您好,谢谢您的提交

在我们继续审查之前,您能否澄清您所要求的API

  • 您能否澄清您使用的“隐性付款”将用于从您的PayPal帐户向您的用户付款?如果这不是必需的,请从您提交的“应用程序使用的服务”-“自适应支付”-“基本支付”部分取消选择

  • 您还选择了Preapprovals,这是一种需要深入审查的高级API。这将用于与客户创建账单协议(如“订阅”业务模式)。如果需要,请填写“预批准条款”字段,并告知我们如何在您的网站上测试预批准的付款流程。如果不是必需的,请从您提交的“应用程序使用的服务”-“自适应支付”部分取消选择

注意:您需要单击x.com“我的应用”部分中的应用名称,以展开和编辑提交表单的字段

我该怎么办

编辑3:

好的,我得到了贝宝的祝福,现在我可以使用带有实时凭证的API了! 我检查了预批准,一切都很顺利

最后一个问题,但并非最不重要:

我如何配置自适应付款,以便在待定过程中更改付款,并让供应商选择验证付款

以下是更好地了解情况的用例:

“John想要将5个虚拟积分兑换成5美元,他单击取款按钮,Web应用程序会自动将paypal帐户上的真实货币发送给他。 豪斯博士想将100个虚拟信用卡转换为100美元,这个金额需要管理员的批准,这个管理员进入他的贝宝帐户,检查一切是否正常。他确认付款后,豪斯博士将得到他的钱!”

我发现了这个选项:

$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的细节。我会把问题放在编辑栏里。