这是用户场景:
“约翰在一个网站上拥有5个虚拟积分,他可以通过点击网站上的按钮将他的虚拟积分转换成真钱。然后该网站将通过PayPal给他真实的钱,John John是否有paypal帐户。“
我想知道是否有可能将此方案付诸实施?
当然,出于安全考虑,我会在服务器端检查所有需要的数据,以便安全地进行操作。
如果没有网站管理员的任何操作,它可以自动化吗?
感谢您的回答!
修改
我会尝试根据我的情况进行调整。我完成整合后,今天就会更新我的帖子。
编辑2:
一切似乎都没问题,但我尝试从www.x.com获取应用ID 他们质疑我如何使用API:
您好,感谢您的提交,
在我们继续进行审核之前,您能否澄清一下您需要的API?
您能否澄清一下您使用的“隐含付款”,用于向您的PayPal帐户付款?如果不需要,请从您提交的“应用程序使用的服务” - “自适应付款” - “基本付款”部分取消选择
您还选择了Preapprovals,这是一种需要深入审核的高级API。这将用于与您的客户创建帐单协议(如“订阅”商业模式)。如果需要,请填写“预先批准条款”字段,告诉我们如何在您的网站上测试预先批准的付款流程。如果不是必需的,请从您提交的“应用程序使用的服务” - “自适应付款”部分取消选择。
注意:您需要点击x.com的“我的应用”部分中的应用名称,才能展开和修改提交表单的字段。
我该怎么办?
编辑3:
好的,我有Paypal的祝福,现在我可以使用带有实时凭据的API! 我已取消选中Preapprovals,一切顺利。
最后一个问题,但并非最不重要:
如何配置自适应付款以更改待处理流程中的付款,并选择供应商验证付款?
以下是用例以更好地了解情况:
“ John希望将5个虚拟积分转换为5个$,他点击取款按钮,webapplication会自动向他发送真钱在他的paypal帐户上。 博士想要将100个虚拟积分兑换成100美元,这个金额需要得到管理员的批准,这个管理员进入他的paypal帐户并检查一切是否正常他确认付款,然后House博士将获得他的钱!“
我找到了这个选项:
$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
如果将值PAY更改为值CREATE,则它不会执行任何操作。
忠实!
答案 0 :(得分:2)
您可以将其设置为自动化。如果您特别想要使用自适应付款,您可能希望使用自适应Payments Pay API将钱汇给John。但是,约翰需要一个PayPal来获取资金并提取资金。
答案 1 :(得分:0)
我使用此代码在沙盒模式下工作,还没有尝试过:
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();
}
需要注意的一些事项:
这样便可以从您的帐户自动付款到收件人,无需您登录即可对其进行授权。