私はpaypalアダプティブペイメントメソッドを実装し、ウェブフローを使用しています。 支払いをした後、明示的に戻るボタンをクリックすると、戻りURLは2回コールされますが、自動リダイレクトを待つと1回だけ呼び出されます。PaypalアダプティブペイメントリターンURLは2回呼びます
返信URLが2回呼び出されている理由を理解できません。
アドバイスをしてください。
私は以下のコードを使用しています。
public static ActionOutput MakeTransactionUsingPaypal(PaymentDetails payment, ShopCart shop_cart)
{
ReceiverList receiverList = new ReceiverList();
receiverList.receiver = new List<Receiver>();
string action_type = "PAY_PRIMARY";
decimal amnt_to_admin = ((shop_cart.TotalAmountToBePaid * 10)/100);
/*Total Amount to Admin Account */
Receiver rec1 = new Receiver(shop_cart.TotalAmountToBePaid);
rec1.email = Config.AdminPaypalBusinessAccount;
rec1.primary = true;
/*Amount after deducting to Admin Commision to Seller */
Receiver rec2 = new Receiver(Math.Round((shop_cart.TotalAmountToBePaid - amnt_to_admin), 2, MidpointRounding.ToEven));
rec2.email = payment.PaypalEmail; // "[email protected]";
receiverList.receiver.Add(rec1);
receiverList.receiver.Add(rec2);
PayRequest req = new PayRequest(new RequestEnvelope("en_US"), action_type, Config.PaypalCancelURL, "USD", receiverList, Config.PaypalReturnURL);
// All set. Fire the request
AdaptivePaymentsService service = new AdaptivePaymentsService();
PayResponse resp = null;
//TransactionDetail details = new TransactionDetail();
resp = service.Pay(req);
String PayKey = resp.payKey;
String PaymentStatus = resp.paymentExecStatus;
ResponseEnvelope ResponseEnvelope = resp.responseEnvelope;
PayErrorList errorList = resp.payErrorList;
List<ErrorData> errorData = resp.error;
if (errorData.Count > 0)
{
return new ActionOutput
{
Status = ActionStatus.Error,
Message = errorData[0].message
};
}
FundingPlan defaultFundingPlan = resp.defaultFundingPlan;
WarningDataList warningDataList = resp.warningDataList;
string redirectUrl = null;
if (!(resp.responseEnvelope.ack == AckCode.FAILURE) &&
!(resp.responseEnvelope.ack == AckCode.FAILUREWITHWARNING))
{
redirectUrl = ConfigurationManager.AppSettings["PAYPAL_REDIRECT_URL"] + "_ap-payment&paykey=" + resp.payKey;
}
return new ActionOutput
{
Status = ActionStatus.Successfull,
Message = "Redirecting to paypal...",
Results = new List<string> { redirectUrl, resp.payKey }
};
}
これを確認できます。私の特別な設定はRuby 1.9.3/Rails 3.2.13で、 'paypal-sdk-adaptivepayments' gemを使用しています。 –
@Oshuma:解決策はありましたか、それともpaypalの終わりにバグですか? –