<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    stone2083

    支付寶接口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,那份接口文檔,寫得還是非常規范的。

    posted on 2009-09-18 13:10 stone2083 閱讀(6309) 評論(10)  編輯  收藏 所屬分類: java

    Feedback

    # re: 支付寶接口demo代碼讀后感[未登錄] 2009-09-20 18:23 阿風

    參數個數<3個 參數
    3<參數<類 用map
    =類 用類
    是這樣嘛?  回復  更多評論   

    # re: 支付寶接口demo代碼讀后感 2009-09-21 13:10 stone2083

    其實本身并沒有非常強制的標準,比如一定得:3<參數<類 用map
    原則只有一個,方便客戶端的調用。

    比如上面舉的例子,一共有19個參數,調用者能方便的調用嗎?哪個參數在哪個位置,能方便找到嗎?

    所以,自定義map(定義了key常量的map)或者parameter Class,更合適上面的場景。
      回復  更多評論   

    # re: 支付寶接口demo代碼讀后感 2010-01-30 17:02 sgz

    受益匪淺!  回復  更多評論   

    # re: 支付寶接口demo代碼讀后感 2010-03-13 19:44 出錯

    剛剛今天下了,我想罵他年的  回復  更多評論   

    # re: 支付寶接口demo代碼讀后感 2010-03-17 10:15 stone2083

    @出錯
    比較遺憾.我第一時間和支付寶工程師聯系反饋了這個問題.沒想到他們到現在還沒有跟進...  回復  更多評論   

    # re: 支付寶接口demo代碼讀后感[未登錄] 2013-01-04 20:52 test

    .net 版本的一樣的,哎@stone2083
      回復  更多評論   

    # re: 支付寶接口demo代碼讀后感 2013-01-20 01:27 weipeng

    支付寶的參數基本都是面向KV的,所以在交易這邊我們自己搞了4個注解,對應于輸入和輸出,比如
    @AlipayParam(service="close_order")
    public Class CloseOrderParam {
    @AlipayParamKey("trade_no")
    private String id;
    @AlipayParamKey("trade_user")
    private String user;
    @AlipayParamKey("xxxxx")
    private String xxx;
    }
    這樣,通過一個Util,可以將自定義類型轉換為支付寶喜歡的Map結構,而輸出也可以從Map在轉換為需要的自定義Result,就比較方便了。

    其實支付寶估計也是想的自定義參數類型更新比較麻煩,所以如果支付寶的client端,提供類似的一組幫助工具,用戶可以自定義參數,然后按照接口約束將其生成為KV形式即可。  回復  更多評論   

    # re: 支付寶接口demo代碼讀后感 2013-01-21 10:55 stone2083

    @weipeng
    我能理解、接受KV結構體,但是不能接受一個方法體使用19個參數。

    總體來說,這個客戶端包代碼質量,太差了。  回復  更多評論   

    # re: 支付寶接口demo代碼讀后感 2013-07-22 12:02 。。。

    裝b裝的蠻像的,都以為自己很牛逼一樣  回復  更多評論   

    # re: 支付寶接口demo代碼讀后感 2015-05-05 11:25 lyta

    你倒是說了很多,說的很詳細,罵的很徹底,那你倒是自己寫一個出來啊  回復  更多評論   

    主站蜘蛛池模板: 亚洲欧洲无码AV电影在线观看| 亚洲欧洲精品久久| 免费h视频在线观看| 亚洲第一二三四区| 国产成人免费高清在线观看| 国产午夜无码精品免费看动漫| 456亚洲人成在线播放网站| 亚洲精品无码永久在线观看| 久久国产乱子伦免费精品| 色婷婷六月亚洲综合香蕉| 亚洲av无码片在线播放| 国产精品免费_区二区三区观看| 污污网站18禁在线永久免费观看| 亚洲自偷自偷在线成人网站传媒| 亚洲中文字幕无码不卡电影| 7723日本高清完整版免费| 深夜a级毛片免费无码| 亚洲最大福利视频网站| 亚洲国产精品碰碰| 久久精品免费全国观看国产| 久青草视频在线观看免费| 亚洲色欲色欲www在线播放| 久久久久亚洲精品美女| 亚洲国产a级视频| 最近2019中文免费字幕| 日日麻批免费40分钟无码| 免费一级做a爰片久久毛片潮| 亚洲特级aaaaaa毛片| 亚洲自偷自偷在线制服| 日韩一级在线播放免费观看| 91精品免费久久久久久久久| 国产精品永久免费视频| 亚洲.国产.欧美一区二区三区| 亚洲视频在线观看地址| 亚洲国产精品SSS在线观看AV| 免费又黄又爽又猛的毛片| 成人免费a级毛片无码网站入口| 最近中文字幕mv免费高清在线| a级毛片免费观看在线| 香蕉国产在线观看免费| 亚洲s码欧洲m码吹潮|