C# Paypal payKey给我带来了不正确的付款
我正在尝试创建一个API调用来创建拆分付款。创建C# Paypal payKey给我带来了不正确的付款,c#,paypal-sandbox,paypal-adaptive-payments,paypal,C#,Paypal Sandbox,Paypal Adaptive Payments,Paypal,我正在尝试创建一个API调用来创建拆分付款。创建AdaptivePaymentService并调用Pay方法后,它返回一个PayResponse,显示成功。然而,当我获得支付密钥并在打开页面时,它会将我带到一个随机页面,该页面通常会显示一些错误,大意是“此交易已被批准。请访问您的PayPal帐户概览以查看详细信息”。在右上角,它会显示“Fiverr.com”或其他随机网页。我已经验证了我正在接收的payKey是与SUCCESS消息一起发送的,所以我不明白为什么这是无效的。下面的代码是我正在使用的
AdaptivePaymentService
并调用Pay
方法后,它返回一个PayResponse
,显示成功
。然而,当我获得支付密钥并在打开页面时,它会将我带到一个随机页面,该页面通常会显示一些错误,大意是“此交易已被批准。请访问您的PayPal帐户概览以查看详细信息”。在右上角,它会显示“Fiverr.com”或其他随机网页。我已经验证了我正在接收的payKey
是与SUCCESS
消息一起发送的,所以我不明白为什么这是无效的。下面的代码是我正在使用的
ReceiverList receiverList = new ReceiverList();
receiverList.receiver = new List<Receiver>();
RequestEnvelope requestEnvelope = new RequestEnvelope("en_US");
Dictionary<string, string> configurationMap = new Dictionary<string, string>();
configurationMap.Add("account1.apiUsername", "----");
configurationMap.Add("account1.apiPassword", "----");
configurationMap.Add("account1.apiSignature", "----");
configurationMap.Add("account1.applicationId", "APP-80W284485P519543T");
configurationMap.Add("mode", "sandbox");
Receiver receiver1 = new Receiver();
receiver1.amount = ((decimal?)9.00);
receiver1.email = "rbxtrade-seller@gmail.com";
receiverList.receiver.Add(receiver1);
Receiver receiver2 = new Receiver();
receiver2.amount = ((decimal?)2.00);
receiver2.email = "rbxtrade-buyer@gmail.com";
receiverList.receiver.Add(receiver2);
PayRequest request = new PayRequest(requestEnvelope, "PAY", "https://devtools-paypal.com/guide/ap_parallel_payment/dotnet?cancel=true", "USD", receiverList, "https://devtools-paypal.com/guide/ap_parallel_payment/dotnet?success=true");
AdaptivePaymentsService service = new AdaptivePaymentsService(configurationMap);
PayResponse response = service.Pay(request);
if (!response.responseEnvelope.ack.ToString().Trim().ToUpper().Equals(AckCode.FAILURE.ToString()) && !response.responseEnvelope.ack.ToString().Trim().ToUpper().Equals(AckCode.FAILUREWITHWARNING.ToString()))
{
Process.Start("https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=" + response.payKey); //opens the webpage
}
else
{
Console.WriteLine("E:" + String.Join("\n", response.error.Select((x) => x.message)));
}
ReceiverList ReceiverList=new ReceiverList();
receiverList.receiver=新列表();
RequestEnvelope RequestEnvelope=新的RequestEnvelope(“en_US”);
Dictionary configurationMap=新字典();
configurationMap.Add(“account1.apiUsername”,“---”);
configurationMap.Add(“account1.apiPassword”和“----”);
configurationMap.Add(“account1.apiSignature”、“---”);
configurationMap.Add(“account1.applicationId”,“APP-80W284485P519543T”);
添加(“模式”、“沙盒”);
接收方1=新接收方();
收款人1.金额=(十进制?)9.00;
接收人1.email=“rbxtrade-seller@gmail.com";
接收人列表。接收人。添加(接收人1);
接收方接收方2=新接收方();
收款人2.金额=(十进制?)2.00;
接收人2.email=“rbxtrade-buyer@gmail.com";
接收者列表。接收者。添加(接收者2);
PayRequest=新的PayRequest(请求信封,“支付”https://devtools-paypal.com/guide/ap_parallel_payment/dotnet?cancel=true“,”美元“,”收款人名单,“https://devtools-paypal.com/guide/ap_parallel_payment/dotnet?success=true");
AdaptivePaymentsService=新的AdaptivePaymentsService(配置图);
PayResponse响应=service.Pay(请求);
如果(!response.responseEnvelope.ack.ToString().Trim().ToUpper().Equals(AckCode.FAILURE.ToString())和&!response.responseEnvelope.ack.ToString().Trim().ToUpper().Equals(AckCode.FAILUREWITHWARNING.ToString())
{
进程启动(“https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=“+response.paykey);//打开网页
}
其他的
{
Console.WriteLine(“E:+String.Join(“\n”,response.error.Select((x)=>x.message));
}
我目前在java中面临这个问题
尝试返回到以下位置:“+支付密钥”。它应该和这个一起工作
这是我找到的所有东西,但对我不起作用。别客气!这实际上解决了它!我不知道我使用了什么奇怪的URL,这让它工作了!万分感谢!嗯,似乎错误再次发生,但安装Cookie编辑器并清除所有。paypal cookies似乎解决了这个问题。奇怪,因为我在多台机器上遇到了同样的问题。那我该怎么做才能让它工作呢?我正在使用此URL,但它不起作用。你是说我应该清除Cookie?请尝试清除浏览器中的所有Cookie,然后使用提供的链接。它与其他浏览器一起工作。饼干确实是个问题。谢谢