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

官方接口文档: https://docs.open.alipay.com/251/105668/ ,我这里写的是开卡组件前两步的操作流程, 仅供参考  

1. 调用接口前的准备工作(创建应用等)参考该文档 https://docs.open.alipay.com/251/105731/  

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<String> requiredFields = new ArrayList<String>();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<String> optionalFields = new ArrayList<String>();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 blocke.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 blocke.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解码得到的值,使用二维码生成器生成,然后使用支付宝扫码可以预览到领卡界面,如果字段申请都得到通过的话,这些必填字段都会获取到的,如要修改信息,点击修改按钮即可 

点击确认领取,会跳转callback地址,然后会得到类似这样的信息 

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
然后通过code去换取accessToken去开卡的,如何换取【获取会员信息】  
调用这个接口会员卡开卡(alipay.marketing.card.open) https://openclub.alipay.com/read.php?tid=1628&fid=71  


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web项目从Myeclipse迁移到idea的二三事

今天新接手了一个myeclipse项目&#xff0c;想把这个项目从myeclipse迁移到idea&#xff0c;花了点时间&#xff0c;也遇到一些新的问题&#xff0c;打算记录下来。 这是myeclipse的项目结构 我整理一下 整理的时候&#xff0c;我碰到了一下的一下的一些问题&#xff1a; 1 . m…

微信公众平台无法使用支付宝收付款的解决方案

微信中无法打开支付宝收款是微信浏览器限制所致&#xff0c;可以参考下图方法引导用户转到系统浏览器&#xff0c;即可用支付宝收款。点此下载。 1、引导用户选择在浏览器中打开支付链接&#xff0c;以完成支付。如图1所示&#xff1a;图12、用支付宝继续完成支付&#xff0c;如…

vux radio 改造为 tree 代码片段

思路&#xff1a;用全角空格和半角空格做区分。 1、自己写的部分 this.toOptions arr.map(x > {let kong for (let i 1; i < x.level; i i 1) {kong kong  }kong kong let icon https://s1.ax1x.com/2018/09/27/iML0BD.pngif (x.level 1) {icon https://s1…

maven已支持支付宝开放平台SDK

「好消息通知」开放平台SDK 标准版 以官方的名义上传了中央仓库&#xff01;支持maven引入调用&#xff01;开发者可以参考使用中央仓库地址&#xff1a;https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java 后续在 https://docs.open.alipay.com/54/103419/ …

工作99:任务加1逻辑

/*控制任务的添加功能*/addFrom(index,item) {var tasks {name: "",start_time: null}this.form.departmentList[index].accounts[item].tasks.push(tasks);},

支付宝后台如何查看自己的签约详情

第一步&#xff1a;登录蚂蚁金服商家服务中心https://b.alipay.com/&#xff0c;点击产品中心&#xff0c;如下图第二步&#xff0c;点击我的产品-已生效-产品详情&#xff0c;&#xff08;如果在已生效界面看不到自己调用接口对应签约的产品&#xff0c;那么你的签约已经失效&…

ALIN10129-自查方案

原贴地址&#xff1a;https://openclub.alipay.com/read.php?tid3374&fid60&#xff0c;欢迎大家访问 报错说明及截图&#xff1a;这个错误一般常见于支付宝老版本的移动支付mobile.securitypay.pay接口中错误原因&#xff1a; 移动支付接口没有权限&#xff08;也就是这个…

实现Repeater控件的记录单选(二)

前一篇《实现Repeater控件的记录单选》http://www.cnblogs.com/insus/p/7426334.html 虽然可以实现对Repeater控件的记录进行单选&#xff0c;但是&#xff0c;你需要懂得写正则表达式和需要写C#程序重写。好吧&#xff0c;方法也许往往不止一种。 先去掉重写的代码&#xff1a…

HAS_NO_PRIVILEGE解决方案

报错信息如下&#xff1a;错误原因&#xff1a; 1、没有签约这个接口的合同 &#xff01; 2、签约了相应的接口合同&#xff0c;但没有生效 &#xff01; 3、签约过期导致&#xff0c;如果你之前都可以使用对应的接口&#xff0c;但是近期使用就报错这个&#xff0c;一般就是…

World从任意页开始设置页码详细教程

我这边使用world建了5页&#xff0c;以此来细说如何使用World从任意页开始设置页码&#xff0c;以下为详细教程 首先&#xff0c;假设你从第三页开始设置页码&#xff0c;那么你的需求是将第三页设置为页码1&#xff0c;第四页为页码2&#xff0c;以此类推&#xff0c;具体的操…

支付宝生成RSA密钥,上传应用公钥的完整流程

首先我们去官方下载【密钥生成工具】&#xff0c;根据自己的电脑操作系统进行选择下载&#xff0c;我这里以Windows为例&#xff01; 这里建议大家直接下载放在电脑桌面&#xff0c;不要放在任何文件夹下&#xff01; 下载该工具后&#xff0c;解压打开文件夹&#xff0c;运行“…

Cpython解释器支持的进程与线程

一、理论部分 一 什么是进程 进程&#xff1a;正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 举例&#xff08;单核多道&#xff0c;实现多个进程的并发执行&#xff09;&#xff1a; egon在一个时间段内有很多任务要做&#xff1a;python备课的任务&#xff0c;…

.NET深入实战系列—Linq to Sql进阶

.NET深入实战系列—Linq to Sql进阶 最近在写代码的过程中用到了Linq查询&#xff0c;在查找资料的过程中发现网上的资料千奇百怪&#xff0c;于是自己整理了一些关于Linq中容易让人困惑的地方。 本文全部代码基于&#xff1a;UserInfo与Class两个表&#xff0c;其中Class中的U…