天天看點

會員卡開卡表單模闆配置(alipay.marketing.card.formtemplate.set)JAVA版本demo

官方接口文檔: [url]https://docs.open.alipay.com/251/105668/[/url]

,我這裡寫的是開卡元件前兩步的操作流程,僅供參考 

1.調用接口前的準備工作(建立應用等)參考該文檔:

[url]https://docs.open.alipay.com/251/105731/[/url]

2.核心代碼,這裡要說明一下,目前測試發現這個接口的model原型有問題,推薦使用拼接字元串或者使用我下面的這個代碼來編寫項目,後面這個會将其優化model 

示例代碼

//會員卡開卡表單模闆配置(alipay.marketing.card.formtemplate.set)     public  static void CardForm_templateSet(){         AlipayClient   alipayClient=alipayclient();         AlipayMarketingCardFormtemplateSetRequest request = new AlipayMarketingCardFormtemplateSetRequest();                      String templateId = "20180131000000000782698000300330";         JSONObject bizParams = new JSONObject();         bizParams.put("template_id", templateId);            ArrayList requiredFields = new ArrayList();         requiredFields.add("OPEN_FORM_FIELD_NAME");         requiredFields.add("OPEN_FORM_FIELD_MOBILE");         requiredFields.add("OPEN_FORM_FIELD_IDCARD");         requiredFields.add("OPEN_FORM_FIELD_GENDER");             ArrayList optionalFields = new ArrayList();         optionalFields.add("OPEN_FORM_FIELD_EMAIL");         optionalFields.add("OPEN_FORM_FIELD_BIRTHDAY");             JSONObject fields = new JSONObject();         JSONObject requiredField = new JSONObject();         requiredField.put("common_fields", requiredFields);            JSONObject optionalField = new JSONObject();         optionalField.put("common_fields", optionalFields);            fields.put("required", requiredField);         fields.put("optional", optionalField);         bizParams.put("fields", fields);             request.setBizContent(bizParams.toString());                      AlipayMarketingCardFormtemplateSetResponse response = null;                try {                    response = alipayClient.execute(request);                    System.out.println(response.getBody());                } catch (AlipayApiException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }                                      if(response.isSuccess()){                 System.out.println("調用成功");                 } else {                 System.out.println("調用失敗");                 }     }           

接口傳回資訊示例:

{"alipay_marketing_card_formtemplate_set_response":{"code":"10000","msg":"Success"},"sign":"PK9mGX8uy3xfwRKygPxPCuf62YQU5JrdY4yDSn5dRhRcjtcTlzm8Gzv1yhnNXOhyITDzY6O8+rwPpSUqrQXT3VvS6dkMvEnoXsT5uKefRKX9PuvwbttN5Vc7Me57aPX9dReiBji4HgBVMI22gcugZ8mBTuNIecYNAAxiVcZjUFQ="}           

注意點: 

1.template_id為會員卡模闆ID,【

建立會員卡模闆

】将會傳回該id 

然後開始操作第二步的流程,調用擷取會員卡領卡投放連結(alipay.marketing.card.activateurl.apply),其核心代碼 

1.template_id為會員卡模闆ID,建立會員卡模闆将會傳回該id 

2.callback為會員卡領卡表單頁面成功回調位址,此位址需要與應用配置的授權回調位址相同。(否則報錯ERR010) 

3.out_string參數由商戶自定義設定,确認領卡成功後将作為url參數拼接在callback回調位址之後原樣帶回 

4.follow_app_id,需要關注的生活号AppId。若需要在領卡頁面展示“關注生活号”提示,可設定此參數為待關注的生活AppId 

擷取會員卡領卡投放連結示例代碼

//alipay.marketing.card.activateurl.apply(擷取會員卡領卡投放連結)     public  static void CardActivateurl_Apply(){         AlipayClient   alipayClient=alipayclient();         AlipayMarketingCardActivateurlApplyRequest request = new AlipayMarketingCardActivateurlApplyRequest();         request.setBizContent("{" +         "\"template_id\":\"20180131000000000782698000300330\"," +         "\"out_string\":\"test_callback\"," +         "\"callback\":\"https://www.baidu.com\"," +         "\"follow_app_id\":\"2014100900013222\"" +         "  }");         AlipayMarketingCardActivateurlApplyResponse response = null;        try {            response = alipayClient.execute(request);            System.out.println(response.getBody());        } catch (AlipayApiException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }         if(response.isSuccess()){         System.out.println("調用成功");         } else {         System.out.println("調用失敗");         }                  }         }           

接口傳回資訊: 

{"alipay_marketing_card_activateurl_apply_response":{"code":"10000","msg":"Success","apply_card_url":"https%3A%2F%2Fmemberprod.alipay.com%2Faccount%2Fopenform%2Factivecard.htm%3Fapp_id%3D2014100900013222%26template_id%3D20180131000000000782698000300330%26__webview_options__%3DcanPullDown%253dNO%2526transparentTitle%253dauto%26out_string%3Dtest_callback%26follow_id%3D2014100900013222%26callback%3Dhttps%3A%2F%2Fwww.baidu.com"},"sign":"mcie0QYbGM8cs/9KXUtFHEqoG5j1+N9N2pAqMKigR2iWmtKHKAlc5HjutFqGEhJ/MN6gGOlqRv8xDYD9FDGqlDhtz80gKwU0AKfIaOMTURANmcL7YrGuymfatLTsoF14jkJf6NqPuoNleJZDY9kXQmHx7MBWlJY8EUPS+RRqnOk="}           

将apply_card_url的值使用urldecode解碼得到的值,使用二維碼生成器生成,然後使用支付寶掃碼可以預覽到領卡界面,如果字段申請都得到通過的話,這些必填字段都會擷取到的,如要修改資訊,點選修改按鈕即可 

  • 會員卡開卡表單模闆配置(alipay.marketing.card.formtemplate.set)JAVA版本demo
  • 點選确認領取,會跳轉callback位址,然後會得到類似這樣的資訊 
  • [url]https://www.baidu.com/?app_id=2014100900013222&auth_code=bec331907d9945a88b4c0be07ecbXXXE&state=bWNhcmQ%3D&scope=auth_base%2Cauth_user%2Cauth_ecard&template_id=20180131000000000782698000300330&request_id=20180131018043460230270561446&out_string=test_callback[/url]           
  • 然後通過code去換取accessToken去開卡的,如何換取請參考:擷取會員資訊([url]https://openclub.alipay.com/read.php?tid=14599&fid=68[/url])

    調用這個接口會員卡開卡(alipay.marketing.card.open):[url]https://openclub.alipay.com/read.php?tid=1628&fid=71[/url] 

繼續閱讀