2012-03-30 14 views
8

Potrzebuję stworzyć zaszyfrowane przyciski paypal "PayNow" w locie dla strony internetowej.
Przeczytałem całą dokumentację, którą można znaleźć na stronie internetowej PayPal.
Zrozumiałem, że muszę użyć BMCreateButton ButtonManager NVP API.
Ale nie udało mi się znaleźć żadnych informacji ani racjonalnie prostego i udokumentowanego przykładowego kodu, o tym, JAK mam nazwać te API.Jak utworzyć zaszyfrowany przycisk PayNow "w locie" dla klientów zewnętrznych, korzystając z interfejsu API PayPl NVP?

Czy muszę umieścić mój parametr w formularzu i opublikować go na jakimś serwerze?
Czy muszę umieścić wszystkie parametry na url, zadzwonić pod ten adres URL, reklamy użyć wyniku?
Jak mogę uwierzytelnić się w tej usłudze?
Mam zamiar utworzyć zaszyfrowany przycisk płatności dla różnych kont biznesowych PayPal.

Czy ktoś może mi pokazać niektóre VB.Net lub kod C#, które faktycznie nazywają ten BMCreateButton NVP API?
Więc to widzę:

  • jak wykonać połączenie
  • jak do uwierzytelniania usługi
  • jak formatować/używać parametrów wywołania API
  • jak uzyskać wyniki

Różne łącza do przydatnych zasobów
- Dzięki this answer udało mi się znaleźć użyteczny kod przykładowy here i there o tym, jak zadzwonić do Paypal API.
- Here to bardziej użyteczne informacje o tym, jak działa system NVP Paypal API.
- Here interesująca strona internetowa, która generuje URL połączenia API dla interfejsu API BMCreateButton
- Here można znaleźć instrukcje dotyczące uzyskiwania poświadczeń interfejsu API "Third Party". (Dzięki this answer)
- niektóre bardziej użyteczne informacje here o Paypal integracji API
- Here można znaleźć aktualny i najnowszy numer wersji Paypal API

Update 1
Teraz mam stworzyłem kod, który faktycznie coś robi, ale daje mi błąd. Ten kod faktycznie tworzy zaszyfrowany przycisk płatności przy użyciu interfejsu API BMCreateButton. Wygląda na to, że działa, ale po kliknięciu przycisku płatności wyświetlają się wszystkie parametry płatności, ale także wyświetlany jest błąd "Wystąpił problem z odszyfrowaniem bezpiecznego zamówienia. Skontaktuj się ze sprzedawcą."

Oto kod:

Public Shared Sub PaypalTest3web() 

    Dim NVP As New Dictionary(Of String, String) 

    Dim strUsername As String = "aso_1273063882_biz_api3.megatesto.it" 
    Dim strPassword As String = "1273063582" 
    Dim strSignature As String = "A22sd7623RGUsduDHDSFU57N7dfhfS23DUYVhdf85du8S6FJ6D5bfoh5" 

    Dim strNVPSandboxServer As String = "https://api-3t.sandbox.paypal.com/nvp" 


    NVP.Add("USER", strUsername) 
    NVP.Add("PWD", strPassword) 
    NVP.Add("SIGNATURE", strSignature) 


    Dim bvCount As Integer 
    bvCount = 0 

    NVP.Add("METHOD", "BMCreateButton") 
    NVP.Add("VERSION", "85.0") 

    NVP.Add("BUTTONCODE", "ENCRYPTED") ''CLEARTEXT/ENCRYPTED 
    NVP.Add("BUTTONTYPE", "BUYNOW") 
    NVP.Add("BUTTONSUBTYPE", "PRODUCTS") ''Optional: PRODUCTS/SERVICES 

    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "business=D64TG758HIWj2") ''Merchant ID 

    'bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "cmd=_s-xclick") ''DONT SPECIFY the cmd parameter, if specifien it will generate an error on the decription of the "secure order", I don't know why... 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "lc=IT") 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "button_subtype=PRODUCTS") 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "item_name=Test_product") 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "item_number=123456") 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "amount=12.00") 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "currency_code=EUR") 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "quantity=1") 

    ''build the parameter string 
    Dim paramBuilder As New StringBuilder 
    For Each kv As KeyValuePair(Of String, String) In NVP 
     Dim st As String 
     st = kv.Key & "=" & HttpUtility.UrlEncode(kv.Value) & "&" 
     paramBuilder.Append(st) 
    Next 

    Dim param As String 
    param = paramBuilder.ToString 
    param = param.Substring(0, param.Length - 1) 'remove the last '&' 

    'Create web request and web response objects, make sure you using the correct server (sandbox/live) 
    Dim wrWebRequest As HttpWebRequest = DirectCast(WebRequest.Create(strNVPSandboxServer), HttpWebRequest) 
    wrWebRequest.Method = "POST" 

    Dim requestWriter As New StreamWriter(wrWebRequest.GetRequestStream()) 
    requestWriter.Write(param) 
    requestWriter.Close() 

    '' Get the response. 
    Dim responseReader As StreamReader 
    responseReader = New StreamReader(wrWebRequest.GetResponse().GetResponseStream()) 

    ''and read the response 
    Dim responseData As String 
    responseData = responseReader.ReadToEnd() 
    responseReader.Close() 

    ''url-decode the results 
    Dim result As String 
    result = HttpUtility.UrlDecode(responseData) 

    Dim formattedResult As String 

    formattedResult = "Request on " & strNVPSandboxServer & vbCrLf & 
        HttpUtility.UrlDecode(param.Replace("&", vbCrLf & " ")) & vbCrLf & vbCrLf & 
        "Result:" & vbCrLf & result & vbCrLf & vbCrLf & 
        "--------------------------------------" & vbCrLf 



    ''show the results 
    Trace.WriteLine(result) 
    MessageBox.Show(result) 
End Sub 

Oto odpowiedzi html

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="cmd" value="_s-xclick"> 
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7----- 
"> 
<input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_buynow_LG.gif" border="0" name="submit" alt="PayPal - Il sistema di pagamento online più facile e sicuro!"> 
<img alt="" border="0" src="https://www.sandbox.paypal.com/it_IT/i/scr/pixel.gif" width="1" height="1"> 
</form> 

I tu jest błąd pojawia się po kliknięciu na tym zaszyfrowanym wynagrodzenia -nowy przycisk

enter image description here

Jak widać, wszystkie parametry (nazwa przedmiotu, cena, identyfikator elementu ...) są poprawne. Ale nie jestem w stanie zrozumieć, dlaczego dostaję tego błędu.

Jeśli chcesz wypróbować ten kod, powinieneś zastąpić swoim użytkownikiem/hasłem/podpisem API. Wygenerowany przycisk PayNow działa tylko wtedy, gdy jesteś zalogowany na koncie PayPal.

Czy masz pojęcie o tym, jak rozwiązać ten błąd?

Uwaga: po rozwiązaniu tego problemu, będę potrzebował, aby zrozumieć, jak tworzyć zaszyfrowane przycisk trzeci konta paypal biznesowej (będziemy musieli utworzyć zaszyfrowany przycisku paypal rachunków klientów). Korzystanie z naszych referencji API, kodu handlowego klienta i posiadania poświadczenia interfejsu API na naszych klientach konta paypal nie jest wystarczające ... Mówi, że kod sprzedawcy jest nieważny. Prawdopodobnie jestem czegoś brakuje ...

Aktualizacja 2
wydaje się, że znalazłem sposób, aby rozwiązać wspomniany błąd: po prostu usunąć parametry „cmd = _s-xclick/_xclick”. Jeśli "cmd" nie jest określony, przycisk paynow nie wydaje się generować żadnego błędu. Potrzeba więcej testów ... w każdym razie skomentowałem linię kodu w przykładzie kodu.

Teraz wracamy do biznesu. Zróbmy test, a następnie znajdź właściwy sposób tworzenia przycisku płatności dla zewnętrznych kont PayPal.

+0

Cześć Max, zgodnie z drugiej SO pytanie źle wyglądać w ten później dzisiaj dla ciebie, jeśli nikt inny nie ma . – lethalMango

+0

@lethalMango: Bardzo dziękuję, każda pomoc jest bardzo doceniana – Max

+0

@lethalMango w końcu znalazłem rozwiązanie :-) – Max

Odpowiedz

9

OK, w końcu udało się! :-)

Moim celem jest utworzenie zaszyfrowanych przycisków PayNow "w locie" dla niektórych naszych klientów. Oto krótkie wyjaśnienie działania systemu PayPal API z dostępem stron trzecich.

  • Utwórz konto Paypal Sandbox (here)
  • W tym koncie piaskownicy, stworzyć 2 nowe konto firmowe
    należy hak te konta biznesowego do karty kredytowej.Będzie to oznaczać te konta jako „zweryfikowany”, chyba, że ​​nie będzie działać
    • pierwsze konto (konta) będą reprezentować nasza firma
    • drugiego rachunku (konto B) będzie reprezentować jeden z naszych klientów
  • zalogowaniu uwagę i żądać poświadczeń API (instructions here)
  • dziennik w rachunku B i udzielenia pozwolenia API do konta (instruction here Skontrolować paragraf uwierzytelniania "Third-Party: Grant Twój koszyk odpowiedni Uwierzytelnianie API Uprawnienia Zgłoszeniowy „)
  • grab poświadczeń API uwagę, i umieścić je w kodzie źródłowym
  • Sprzedawcy grab ID i kupiec email z konta B i umieścić je w kodzie źródłowym
  • uruchomić kod
  • chwycić wracającą html, umieścić go na stronie internetowej, a przetestować go, powinien on działa
    (musisz być zalogowany na koncie payPal piaskownicy lub przycisk generowane przyzwyczajenie działa)

Dlaczego ten prosty i zwięzły wiedza timewastingly rozrzucone pośród niezliczonej liczby stron Pomocy, PayPal PayPal podręczniki PDF i stron trzecich blogu, jest poza moim zrozumieniem :-) tak ...

Tutaj jest to kod pracy w Vb.NET

Public Shared Sub PaypalThirdPartyPayNowButtonTest() 
    Dim bvCount As Integer = 0 ''L_BUTTONVAR counter 
    Dim NVP As New Dictionary(Of String, String) ''Api Name-Value-Pair parameters 

    ''define paypal SANDBOX server 
    Dim paypalApiServerUrl As String = "https://api-3t.sandbox.paypal.com/nvp" 

    ''define Api credentials of YOUR business paypal account 
    Dim yourApiUsername As String = "aso_1273063882_biz_api3.megatesto.it" 
    Dim yourApiPassword As String = "1273063582" 
    Dim yourApiSignature As String = "A22sd7623RGUsduDHDSFU57N7dfhfS23DUYVhdf85du8S6FJ6D5bfoh5" 

    ''define Your CUSTOMER identification data 
    Dim customerEmailID As String = "[email protected]" 
    Dim customerMerchantID As String = "3S4EF7BI96YHS" 


    ''use YOUR identification data 
    NVP.Add("USER", yourApiUsername) 
    NVP.Add("PWD", yourApiPassword) 
    NVP.Add("SIGNATURE", yourApiSignature) 

    ''use your CUSTOMER identification data 
    NVP.Add("SUBJECT", customerEmailID) 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "business=" & customerMerchantID) ''Merchant ID 


    ''Api method name and version 
    NVP.Add("METHOD", "BMCreateButton") 
    NVP.Add("VERSION", "85.0") 

    ''method specific parameters 
    NVP.Add("BUTTONCODE", "ENCRYPTED") 
    NVP.Add("BUTTONTYPE", "BUYNOW") 
    NVP.Add("BUTTONSUBTYPE", "PRODUCTS") 

    ''Buynow button specific parameters 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "lc=IT") 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "button_subtype=PRODUCTS") 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "item_name=Test_product") 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "item_number=123456") 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "amount=12.00") 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "currency_code=EUR") 
    bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "quantity=1") 
    ''bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "cmd=_s-xclick") 'DONT' specify the cmd parameter, if you specify it, it wont work, paypal will give you an error 

    ''build the parameter string 
    Dim paramBuilder As New StringBuilder 
    For Each kv As KeyValuePair(Of String, String) In NVP 
     Dim st As String 
     st = kv.Key & "=" & HttpUtility.UrlEncode(kv.Value) & "&" 
     paramBuilder.Append(st) 
    Next 

    Dim param As String 
    param = paramBuilder.ToString 
    param = param.Substring(0, param.Length - 1) ''remove the last '&' 


    ''Create web request and web response objects, make sure you using the correct server (sandbox/live) 
    Dim wrWebRequest As HttpWebRequest = DirectCast(WebRequest.Create(paypalApiServerUrl), HttpWebRequest) 
    wrWebRequest.Method = "POST" 


    Dim requestWriter As New StreamWriter(wrWebRequest.GetRequestStream()) 
    requestWriter.Write(param) 
    requestWriter.Close() 

    '' Get the responseReader 
    Dim responseReader As StreamReader 
    responseReader = New StreamReader(wrWebRequest.GetResponse().GetResponseStream()) 

    ''read the response 
    Dim responseData As String 
    responseData = responseReader.ReadToEnd() 
    responseReader.Close() 


    ''url-decode the results 
    Dim result As String 
    result = HttpUtility.UrlDecode(responseData) 

    Dim formattedResult As String 

    formattedResult = "Request on " & paypalApiServerUrl & vbCrLf & 
        HttpUtility.UrlDecode(param.Replace("&", vbCrLf & " ")) & vbCrLf & vbCrLf & 
        "Result:" & vbCrLf & HttpUtility.UrlDecode(responseData.Replace("&", vbCrLf & " ")) & vbCrLf & vbCrLf & 
        "--------------------------------------" & vbCrLf 

    ''show the results 
    Trace.WriteLine(formattedResult) 
    MessageBox.Show(formattedResult) 
End Sub 

I tu jest ten sam kod w języku C#

public static void PaypalThirdPartyPayNowButtonTest() 
{ 
    int bvCount = 0; //L_BUTTONVAR counter 
    Dictionary<string, string> NVP = new Dictionary<string, string>(); //Api Name-Value-Pair parameters 

    //paypal SANDBOX server 
    string paypalApiServerUrl = "https://api-3t.sandbox.paypal.com/nvp"; 

    //Api credentials of YOUR business paypal account 
    string yourApiUsername = "aso_1273063882_biz_api3.megatesto.it"; 
    string yourApiPassword = "1273063582"; 
    string yourApiSignature = "A22sd7623RGUsduDHDSFU57N7dfhfS23DUYVhdf85du8S6FJ6D5bfoh5"; 

    //Your CUSTOMER identification data 
    string customerEmailID = "[email protected]"; 
    string customerMerchantID = "3S4EF7BI96YHS"; 

    //use YOUR identification data 
    NVP.Add("USER", yourApiUsername); 
    NVP.Add("PWD", yourApiPassword); 
    NVP.Add("SIGNATURE", yourApiSignature); 

    //use your CUSTOMER identification data 
    NVP.Add("SUBJECT", customerEmailID); 
    bvCount++; NVP.Add("L_BUTTONVAR" + bvCount.ToString() , "business=" + customerMerchantID); 

    //Api method name and version 
    NVP.Add("METHOD", "BMCreateButton"); 
    NVP.Add("VERSION", "85.0"); 

    //method specific parameters 
    NVP.Add("BUTTONCODE", "ENCRYPTED"); 
    NVP.Add("BUTTONTYPE", "BUYNOW"); 
    NVP.Add("BUTTONSUBTYPE", "PRODUCTS"); 

    //Buynow button specific parameters 
    bvCount++; NVP.Add("L_BUTTONVAR" + bvCount.ToString() , "lc=IT"); 
    bvCount++; NVP.Add("L_BUTTONVAR" + bvCount.ToString() , "button_subtype=PRODUCTS"); 
    bvCount++; NVP.Add("L_BUTTONVAR" + bvCount.ToString() , "item_name=Test_product"); 
    bvCount++; NVP.Add("L_BUTTONVAR" + bvCount.ToString() , "item_number=123456"); 
    bvCount++; NVP.Add("L_BUTTONVAR" + bvCount.ToString() , "amount=12.00"); 
    bvCount++; NVP.Add("L_BUTTONVAR" + bvCount.ToString() , "currency_code=EUR"); 
    bvCount++; NVP.Add("L_BUTTONVAR" + bvCount.ToString() , "quantity=1"); 
    //bvCount = bvCount + 1 : NVP.Add("L_BUTTONVAR" & bvCount, "cmd=_s-xclick") //DON'T specify the cmd parameter, if you specify it, it wont work, paypal will give you an error 


    //build the parameter string 
    StringBuilder paramBuilder = new StringBuilder(); 
    foreach (KeyValuePair<string, string> kv in NVP) 
    { 
     string st = kv.Key + "=" + System.Web.HttpUtility.UrlEncode(kv.Value) + "&"; 
     paramBuilder.Append(st); 
    } 

    string param = paramBuilder.ToString(); 
    param = param.Substring(0, param.Length - 1); //remove the last '&' 


    //Create web request and web response objects, make sure you using the correct server (sandbox/live) 
    System.Net.HttpWebRequest wrWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(paypalApiServerUrl); 
    wrWebRequest.Method = "POST"; 

    System.IO.StreamWriter requestWriter = new System.IO.StreamWriter(wrWebRequest.GetRequestStream()); 
    requestWriter.Write(param); 
    requestWriter.Close(); 


    //Get the responseReader 
    System.IO.StreamReader responseReader = new System.IO.StreamReader(wrWebRequest.GetResponse().GetResponseStream()); 
    string responseData = responseReader.ReadToEnd(); 
    responseReader.Close(); 

    //url-decode the results 
    string result = System.Web.HttpUtility.UrlDecode(responseData); 

    string formattedResult = "Request on " + paypalApiServerUrl + "\r\n" + System.Web.HttpUtility.UrlDecode(param.Replace("&", "\r\n ")) + "\r\n\r\nResult:\r\n" + System.Web.HttpUtility.UrlDecode(responseData.Replace("&", "\r\n ")) + "\r\n\r\n--------------------------------------\r\n"; 

    //show the results 
    System.Diagnostics.Trace.WriteLine(formattedResult); 
    System.Windows.Forms.MessageBox.Show(formattedResult); 
} 

Życzę wszystkim szczęśliwego integracja PayPal :-)

Update (dla PHP koder)
@Style prosi o roboczej przykład PHP ... I don 't znają PHP, ale znalazłem kilka linków, które mogą zawierać przydatne informacje dla koderów PHP: możesz szukać api BMCreateButton wewnątrz tych plików źródłowych:

+0

Podany przykład kodu prawie dla mnie pracował - zmieniłem wersję z 85 na 65,2, aby działało. – 79IT

+0

@ 79IT Dobrze wiedzieć. dzięki za radę :-) – Max

+0

@Max skąd mogę znaleźć moją ApiSignature –

Powiązane problemy