支付宝接口demo代码读后感

支付宝接口demo代码读后感

最近在帮朋友做一个支付功能,用到了支付宝。
从支付宝管理界面,下载到商户合作文档,看了demo程序后,心是拔凉拔凉的。
说说review代码后的问题吧:
CheckURL.java
public   static  String check(String urlvalue ) {


      String inputLine
= "" ;

        
try {
                URL url 
=   new  URL(urlvalue);

                HttpURLConnection urlConnection  
=  (HttpURLConnection)url.openConnection();

                BufferedReader in  
=   new  BufferedReader(
                        
new  InputStreamReader(
                                urlConnection.getInputStream()));

                inputLine 
=  in.readLine().toString();
            }
catch (Exception e){
                e.printStackTrace();
            }
            
// System.out.println(inputLine);  系统打印出抓取得验证结果

        
return  inputLine;
  }
*Inputstream不需要close?
*知道e.printStackTrace()的性能代价?

Md5Encrypt.java
*是采用什么编码的?我下载的是UTF8编码版本的,请问Md5Encrypt.java是什么编码?

Payment.java
public   static  String CreateUrl(String paygateway,String service,String sign_type,String out_trade_no,

                  String input_charset,String partner,String key,String seller_email,

                  String body,String subject,String price,String quantity,String show_url,String payment_type,

                  String discount,String logistics_type,String logistics_fee,String logistics_payment,

                  String return_url) {

                   
// String notify_url,需要的请把参数加入以上的createurl

        Map params 
=   new  HashMap();

        params.put(
" service " , service);

        params.put(
" out_trade_no " , out_trade_no);

        params.put(
" show_url " , show_url);

        params.put(
" quantity " , quantity);

        params.put(
" partner " , partner);

        params.put(
" payment_type " , payment_type);

        params.put(
" discount " , discount);

        params.put(
" body " , body);

       
//  params.put("notify_url", notify_url);

        params.put(
" price " , price);

        params.put(
" return_url " , return_url);

        params.put(
" seller_email " , seller_email);

        params.put(
" logistics_type " , logistics_type);

        params.put(
" logistics_fee " , logistics_fee);

        params.put(
" logistics_payment " , logistics_payment);

        params.put(
" subject " , subject);

        params.put(
" _input_charset " , input_charset);

        String prestr 
=   "" ;



        prestr 
=  prestr  +  key;

        
// System.out.println("prestr=" + prestr);



        String sign 
=  com.alipay.util.Md5Encrypt.md5(getContent(params, key));



        String parameter 
=   "" ;

        parameter 
=  parameter  +  paygateway;

        
// System.out.println("prestr="  + parameter);

        List keys 
=   new  ArrayList(params.keySet());

        
for  ( int  i  =   0 ; i  <  keys.size(); i ++ ) {

              String value 
= (String) params.get(keys.get(i));

            
if (value  ==   null   ||  value.trim().length()  == 0 ){

                
continue ;

            }

            
try  {

                parameter 
=  parameter  +  keys.get(i)  +   " = "

                    
+  URLEncoder.encode(value, input_charset)  +   " & " ;

            } 
catch  (UnsupportedEncodingException e) {



                e.printStackTrace();

            }

        }



        parameter 
=  parameter  +   " sign= "   +  sign  +   " &sign_type= "   +  sign_type;



        
return  sign;



    }
*多少个参数啊?超过3,4个参数,都不使用ParameterClass吗?方便client调用吗?
*这个方法做什么?createUrl?得到url。可事实上呢?return sign。sign是什么?是参数的加密窜。
方法中的 parameter不知道要来干吗用?
*又看到
e.printStackTrace();

SignatureHelper.java
哇,总算看到一个过得去的代码,可以eclipse上,发现一个warning:import java.io.UnsupportedEncodingException;
有用到UnsupportedEncodingException这个吗?

SignatureHelper_return.java
*看看这个类名,符合java类名的规范吗?
*和SignatureHelper.java有什么区别?

SetCharacterEncodingFilter.java
哇塞,总算看到非常标准的代码了。可是:@author Craig McClanahan,原来是copy过来的。呜呼。

并且整个demo工程,是用myeclipse的。哎。。。

看不下去了,实在看不下去了。
我不清楚支付宝公司提供的demo程序的目的是什么?
--提供的java文件是允许打成lib包使用的?
--仅仅提供学习的?

就算是提供学习的,写得标准些,行不?

最后,我真希望,是我自己下错了demo程序--这个demo程序不是支付宝官方的demo。希望如此吧,阿门~

备注:
除了demo,那份接口文档,写得还是非常规范的。

你可能感兴趣的:(支付宝接口demo代码读后感)