【发布时间】:2016-07-27 16:33:33
【问题描述】:
我正在尝试创建一个 API 调用来创建分期付款。在创建AdaptivePaymentService 并调用Pay 方法后,它返回一个显示SUCCESS 的PayResponse。但是,当我收到payKey 并打开https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey= 的页面时,它会将我带到一些随机页面,该页面通常会显示一些错误,类似于“此交易已被批准。请访问您的 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)));
}
【问题讨论】:
标签: c# paypal-sandbox paypal-adaptive-payments paypal