2012-06-28 3 views
0

Я делаю DoCapture и использую идентификатор транзакции DoDirectPayment. Но каждый раз, когда я фиксирую платеж, он показывает «Недопустимый идентификатор транзакции». Это происходит, когда я пытаюсь захватить пейджмент из прямой оплаты кредитной карты, а также этот платеж по кредитной карте осуществляется с помощью метода DoDirectPayment. Но если вы делаете expressCheckout, перейдя на мою учетную запись PayPal и выполнив мою транзакцию, это также даст мне идентификатор транзакции. Если я зафиксирую платеж с использованием этого идентификатора транзакции, процесс оплаты завершится успешно! Я не знаю, что происходит! Пожалуйста, помогите мне выйти из проблемы! Я использую PayPal API версии 59.0 Мой пример кодаНедопустимый идентификатор транзакции в методе Docapture paypal api

   Session["stage"] = ASPDotNetSamples.Constants.ENVIRONMENT; //SandBox Environment 
       //here my api credentials 
       SetProfile.SessionProfile = SetProfile.CreateAPIProfile(ASPDotNetSamples.Constants.API_USERNAME, 
        ASPDotNetSamples.Constants.API_PASSWORD, ASPDotNetSamples.Constants.API_SIGNATURE, "", "", 
        ASPDotNetSamples.Constants.ENVIRONMENT); 


       //NVPCallerServices caller = PayPalAPI.PayPalAPIInitialize(); 
       //NVPCodec encoder = new NVPCodec(); 
       com.paypal.sdk.services.NVPCallerServices caller = PayPalAPI.PayPalAPIInitialize(); 
       NVPCodec encoder = new NVPCodec(); 

       encoder["METHOD"] = "DoCapture"; 
       encoder["TRXTYPE"] = "D"; 
       encoder["AUTHORIZATIONID"] = authorization_id.; //the authrization id i got from the dodirectpayment 
       encoder["COMPLETETYPE"] = CompleteCodeType; //completecodetype is completed 
       double dAmount = Convert.ToDouble(actualAmount); 
       encoder["AMT"] = String.Format("{0:0.00}", dAmount);      

       string pStrrequestforNvp = encoder.Encode(); 
       string pStresponsenvp = caller.Call(pStrrequestforNvp); 

       NVPCodec decoder = new NVPCodec(); 
       decoder.Decode(pStresponsenvp); 
       string parentTransactionID = decoder["PARENTTRANSACTIONID"]; 
       string strAck = decoder["ACK"]; 

       if (strAck != null && (strAck == "Success" || strAck == "SuccessWithWarning")) 
       { 
        string pStrResQue = "AUTHORIZATIONID=" + decoder["AUTHORIZATIONID"] + "&" + 
         //"PAYMENTSTATUS=" + decoder["PAYMENTSTATUS"] + "&" + 
             "PAYMENTSTATUS=" + CompleteCodeType + "&" + 
             "AMT=" + decoder["AMT"] + "&" + 
             "TRANSACTIONID=" + decoder["TRANSACTIONID"];       
         // if Payment is done successfully 

       } 
       else 
       { 
        // if Payment is pending 

        string pStrError = "ErrorCode=" + decoder["L_ERRORCODE0"] + "&" + 
             "Desc=" + decoder["L_SHORTMESSAGE0"] + "&" + 
             "Desc2=" + decoder["L_LONGMESSAGE0"];       
        Response.Redirect("APIError.aspx?" + pStrError); 
       } 

Спасибо заранее!

ответ

0

Смотрите эту

com.paypal.sdk.services.NVPCallerServices caller = PayPalAPI.PayPalAPIInitialize(); 
    NVPCodec encoder = new NVPCodec(); 
    encoder["METHOD"] = "DoDirectPayment"; 
    encoder["PAYMENTACTION"] = "Authorization"; 
    //encoder["AMT"] = hfHoldAmount.Value.ToString(); 
    encoder["AMT"] = hfHoldAmount.Value.ToString(); 
    encoder["CREDITCARDTYPE"] = ddlCardType.SelectedValue; 
    encoder["ACCT"] = txtCardNnumber.Text.Trim(); 
    encoder["EXPDATE"] = (ddlExpMonth.SelectedValue.Length == 1 ? "0" + ddlExpMonth.SelectedValue : ddlExpMonth.SelectedValue) + ddlExpYear.SelectedValue; 
    encoder["CVV2"] = txtCVCode.Text.Trim(); 
    encoder["FIRSTNAME"] = txtFirstName.Text.Trim(); 
    encoder["LASTNAME"] = txtLastName.Text.Trim(); 
    encoder["STREET"] = txtAddress.Text.Trim(); 
    encoder["CITY"] = txtCity.Text.Trim(); 
    encoder["STATE"] = ddlStateProvince.Items.FindByValue(ddlStateProvince.SelectedValue).Text; 
    encoder["ZIP"] = txtZipCode.Text.Trim(); 
    encoder["COUNTRYCODE"] = "US"; 
    encoder["CURRENCYCODE"] = "USD"; 
+1

PAYMENTACTION должен быть Разрешение на DoCapture –

+1

ооо удивительный! Отлично! теперь работает ! – Mushfiq

Смежные вопросы