会员卡开卡表单模板配置(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解码得到的值,使用二维码生成器生成,然后使用支付宝扫码可以预览到领卡界面,如果字段申请都得到通过的话,这些必填字段都会获取到的,如要修改信息,点击修改按钮即可 

目录
相关文章
|
3天前
|
移动开发 前端开发 Java
第一次用java17记录运行ruoyi-vue-plus5.X版本
第一次用java17记录运行ruoyi-vue-plus5.X版本
|
3天前
|
存储 安全 Java
Java一分钟之-集合框架进阶:Set接口与HashSet
【5月更文挑战第10天】本文介绍了Java集合框架中的`Set`接口和`HashSet`类。`Set`接口继承自`Collection`,特征是不允许重复元素,顺序不确定。`HashSet`是`Set`的实现,基于哈希表,提供快速添加、删除和查找操作,但无序且非线程安全。文章讨论了`HashSet`的特性、常见问题(如元素比较规则、非唯一性和线程安全性)以及如何避免这些问题,并提供了代码示例展示基本操作和自定义对象的使用。理解这些概念和注意事项能提升代码效率和可维护性。
9 0
|
3天前
|
Java 索引
【JAVA基础篇教学】第九篇:Java中Set详解说明
【JAVA基础篇教学】第九篇:Java中Set详解说明
|
4天前
|
IDE Java 应用服务中间件
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
15 1
|
10天前
|
Oracle Java 关系型数据库
windows 下 win11 JDK17安装与环境变量的配置(配置简单详细,包含IJ中java文件如何使用命令运行)
本文介绍了Windows 11中安装JDK 17的步骤,包括从官方网站下载JDK、配置环境变量以及验证安装是否成功。首先,下载JDK 17的安装文件,如果没有Oracle账户,可以直接解压缩文件到指定目录。接着,配置系统环境变量,新建`JAVA_HOME`变量指向JDK安装路径,并在`Path`变量中添加。然后,通过命令行(cmd)验证安装,分别输入`java -version`和`javac -version`检查版本信息。最后,作者分享了如何在任意位置运行Java代码,包括在IntelliJ IDEA(IJ)中创建的Java文件,只需去掉包声明,就可以通过命令行直接运行。
|
12天前
|
设计模式 存储 前端开发
18:JavaBean简介及其在表单处理与DAO设计模式中的应用-Java Web
18:JavaBean简介及其在表单处理与DAO设计模式中的应用-Java Web
25 4
|
13天前
|
Java 开发者
Java中三种Set的实现类的用法和区别
Java中三种Set的实现类的用法和区别
|
13天前
|
消息中间件 安全 Java
在Spring Bean中,如何通过Java配置类定义Bean?
【4月更文挑战第30天】在Spring Bean中,如何通过Java配置类定义Bean?
21 1
|
14天前
|
Java Maven
【亮剑】Java项目开发中常遇到Jar 包依赖冲突问题,主要由不同版本库、循环依赖、传递依赖和依赖范围不当引起
【4月更文挑战第30天】Java项目开发中常遇到依赖冲突问题,主要由不同版本库、循环依赖、传递依赖和依赖范围不当引起。解决冲突需分析依赖树、定位冲突源、调整类加载顺序等。方法包括排除冲突依赖、统一管理版本、限定依赖范围、合并冲突类、升级降级库版本及拆分模块。关注依赖关系,及时解决冲突,保障项目稳定运行。
|
16天前
|
Java Windows
java——安装JDK及配置解决常见问题
java——安装JDK及配置解决常见问题