会员卡开卡表单模板配置(alipay.marketing.card.formtemplate.set)JAVA版本demo

简介: 官方接口文档:[url]https://docs.open.alipay.com/251/105668/[/url],我这里写的是开卡组件前两步的操作流程,仅供参考 1.调用接口前的准备工作(创建应用等)参考该文档:[url]https://docs.

官方接口文档:[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解码得到的值,使用二维码生成器生成,然后使用支付宝扫码可以预览到领卡界面,如果字段申请都得到通过的话,这些必填字段都会获取到的,如要修改信息,点击修改按钮即可 

目录
相关文章
|
2月前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
42 6
|
2月前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
33 2
|
2月前
|
Java
在Java的世界里,Set只接纳独一无二的元素。
【10月更文挑战第16天】在Java的世界里,Set只接纳独一无二的元素。本文通过拟人化的手法,讲述了重复元素从初次尝试加入Set被拒绝,到经历挣扎、反思,最终通过改变自己,成为独特个体并被Set接纳的全过程。示例代码展示了这一过程的技术实现。
25 1
|
15天前
|
存储 算法 Java
Java Set深度解析:为何它能成为“无重复”的代名词?
Java的集合框架中,Set接口以其“无重复”特性著称。本文解析了Set的实现原理,包括HashSet和TreeSet的不同数据结构和算法,以及如何通过示例代码实现最佳实践。选择合适的Set实现类和正确实现自定义对象的hashCode()和equals()方法是关键。
25 4
|
15天前
|
Java
那些与Java Set擦肩而过的重复元素,都经历了什么?
在Java的世界里,Set如同一位浪漫而坚定的恋人,只对独一无二的元素情有独钟。重复元素虽屡遭拒绝,但通过反思和成长,最终变得独特,赢得了Set的认可。示例代码展示了这一过程,揭示了成长与独特性的浪漫故事。
20 4
|
15天前
|
Java 开发者
Java Set:当“重复”遇见它,秒变“独宠”!
在Java编程中,Set接口确保集合中的元素不重复,每个元素都是独一无二的“独宠”。本文介绍了Set的两种常见实现:HashSet和TreeSet。HashSet基于哈希表实现,提供高效的添加、删除和查找操作;TreeSet基于红黑树实现,不仅去重还能对元素进行排序。通过示例代码,展示了这两种集合的具体应用,帮助开发者更好地理解和使用Set。
22 4
|
21天前
|
存储 Java
判断一个元素是否在 Java 中的 Set 集合中
【10月更文挑战第30天】使用`contains()`方法可以方便快捷地判断一个元素是否在Java中的`Set`集合中,但对于自定义对象,需要注意重写`equals()`方法以确保正确的判断结果,同时根据具体的性能需求选择合适的`Set`实现类。
|
21天前
|
存储 Java 开发者
Java 中 Set 类型的使用方法
【10月更文挑战第30天】Java中的`Set`类型提供了丰富的操作方法来处理不重复的元素集合,开发者可以根据具体的需求选择合适的`Set`实现类,并灵活运用各种方法来实现对集合的操作和处理。
|
20天前
|
存储 Java 开发者
Java Set:无序之美,不重复之魅!
在Java的集合框架中,Set接口以其“无序之美”和“不重复之魅”受到开发者青睐。Set不包含重复元素,不保证元素顺序,通过元素的hashCode()和equals()方法实现唯一性。示例代码展示了如何使用HashSet添加和遍历元素,体现了Set的高效性和简洁性。
28 4
|
20天前
|
存储 算法 Java
为什么Java Set如此“挑剔”,连重复元素都容不下?
在Java的集合框架中,Set是一个独特的接口,它严格要求元素不重复,适用于需要唯一性约束的场景。Set通过内部数据结构(如哈希表或红黑树)和算法(如哈希值和equals()方法)实现这一特性,自动过滤重复元素,简化处理逻辑。示例代码展示了Set如何自动忽略重复元素。
25 1