Paypal button Add to cart - how to generate using Java?

I am using the Paypal NVP API, as well as the BMCreateButton API, to create encrypted buttons with Java code.

I have the simplest button shape. So, for example, for a T-Shirt, which costs 8.00, the code for creating the button (remember, this is a fragment of only part of the variables) -

//... NVPEncoder encoder = new NVPEncoder(); encoder.add("METHOD", "BMCreateButton"); encoder.add("BUTTONCODE","ENCRYPTED"); encoder.add("BUTTONTYPE","CART"); encoder.add("L_BUTTONVAR1","amount=8.00"); encoder.add("L_BUTTONVAR2","item_number=6985855"); encoder.add("L_BUTTONVAR3","item_name=T-Shirt"); //... 

It's simple enough, but realistic, the products have other options. A t-shirt can have color and size options that will be displayed in the html <select> menu on the page. In addition, each color / size setting will have a different price.

I'm stuck here. Between the HTML Variable link and the BMCreateButton API on the Paypal page, I'm confused!

The Html code that should be displayed with the options on the selection menu will be:

 <input type="hidden" name="on0" value="Color &amp; Size">Color &amp; Size <input type="hidden" name="option_select0" value="Pink Small" /> <input type="hidden" name="option_amount0" value="6.00" /> <input type="hidden" name="option_select1" value="Pink Medium" /> <input type="hidden" name="option_amount1" value="7.00" /> <input type="hidden" name="option_select2" value="Pink Large" /> <input type="hidden" name="option_amount2" value="8.00" /> <select name="os0"> <option value="Pink Small">Pink - Small $6.00 - (13)</option> <option value="Pink Medium">Pink - Medium $7.00</option> <option value="Pink Large">Pink - Large $8.00</option> </select> 

How to do it?

The best I could think of, but of course it didn't work - it was -

 //... NVPEncoder encoder = new NVPEncoder(); encoder.add("METHOD", "BMCreateButton"); encoder.add("BUTTONCODE","ENCRYPTED"); encoder.add("BUTTONTYPE","CART"); encoder.add("L_BUTTONVAR1","item_number=6985855"); encoder.add("L_BUTTONVAR2","item_name=Dress"); encoder.add("L_BUTTONVAR3","on0=Color & Size"); encoder.add("L_BUTTONVAR4","option_select0=Pink Small"); encoder.add("L_BUTTONVAR5","option_amount0=6.00"); encoder.add("L_BUTTONVAR6","option_select1=Pink Medium"); encoder.add("L_BUTTONVAR7","option_amount1=7.00"); encoder.add("L_BUTTONVAR8","option_select2=Pink Large"); encoder.add("L_BUTTONVAR9","option_select2=8.00"); encoder.add("OPTION0NAME","Color & Size"); encoder.add("L_OPTION0SELECT0","Pink Small"); encoder.add("L_OPTION0PRICE0","6.00"); encoder.add("L_OPTION0SELECT1","Pink Medium"); encoder.add("L_OPTION0PRICE1","7.00"); encoder.add("L_OPTION0SELECT2","Pink Large"); encoder.add("L_OPTION0PRICE2","8.00"); //... 

Can anyone help me out? Thanks:)

+6
source share
1 answer

After several matches with Paypal through the Merchant Support website. This is pretty much the only way to get an answer!

If you are a Java developer like me, this code will come in handy too.

 public static String createEncryptedButton(PrintWriter out) throws Exception { String returnResult = ""; NVPEncoder encoder = new NVPEncoder(); encoder.add("METHOD","BMCreateButton"); encoder.add("BUTTONCODE","ENCRYPTED"); encoder.add("BUTTONTYPE","CART"); encoder.add("BUTTONSUBTYPE","PRODUCTS"); encoder.add("L_BUTTONVAR0","business="+businessEmail); //use your sandbox or paypal email encoder.add("L_BUTTONVAR1","item_name=Dress"); encoder.add("L_BUTTONVAR2","item_number=100100"); encoder.add("OPTION0NAME","Color and Size"); encoder.add("L_OPTION0SELECT0","Pink Small"); encoder.add("L_OPTION0PRICE0","6.00"); encoder.add("L_OPTION0SELECT1","Pink Medium"); encoder.add("L_OPTION0PRICE1","7.00"); encoder.add("L_OPTION0SELECT2","Pink Large"); encoder.add("L_OPTION0PRICE2","8.00"); String strNVPString = encoder.encode(); String ppresponse = call(strNVPString,out); NVPDecoder results = new NVPDecoder(); results.decode(ppresponse); String buttonCode = results.get("WEBSITECODE"); out.print("the code is :"+buttonCode); return returnResult; } public static String call(String payload, PrintWriter out) throws Exception { //Remember to setup your API credentials, whether you're using Sandbox //for testing or Paypal when you go live String USER = "yourUsername"; //API Username String PWD = "yourPassword"; //API Password String SIGNATURE = "yourSignature"; //API Signature String VERSION = "74.0"; //Version numbers differ from Paypal and Sandbox site. Do View > Source and look in source code for current version number under each site. StringBuffer request = new StringBuffer(); request.append("USER="+USER+"&PWD="+PWD+"&SIGNATURE="+SIGNATURE+"&VERSION="+VERSION); request.append("&"); //this is for Sandbox testing //when you go live with paypal, switch it to //https://api-3t.paypal.com/nvp URL url = new URL("https://api-3t.sandbox.paypal.com/nvp"); HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); connection.setDoOutput(true); connection.setUseCaches(false); connection.setRequestProperty("Content-Type", "text/namevalue"); DataOutputStream outst = new DataOutputStream(connection.getOutputStream()); outst.write(request.toString().getBytes()); outst.close(); // Read the gateway response BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuffer sb = new StringBuffer(); String line; while ((line = in.readLine()) != null) { sb.append(line); } in.close(); return sb.toString(); } // call 
+7
source

Source: https://habr.com/ru/post/892039/


All Articles