人生第一次写博客,肯定会有多多不足,希望在接下来的日子里自己能坚持下来,持之以恒.

简单介绍下功能需求,对接商场的CRM会员管理系统和支付宝口碑,实现通过口碑能给商场商圈开通电子会员卡,并通过支付宝消费完成商场积分等操作,一言以蔽之,就是打通口碑和CRM会员功能,积分功能.

口碑商户会员卡使用场景:

  1. 商户使用会员卡产品完成会员卡模板创建。
  2. 商户通过线上/线下各种渠道引导用户领取卡,在用户授权的前提下,商户调用接口向用户发会员卡。
  3. 拿到会员卡后,用户到商户消费使用该会员卡,进行消费,可获得会员优惠或者会员积分。
  4. 用户可以在支付宝客户端卡券包里查看到该卡,并看到该卡的会员权益或积分或消费记录。

开发流程:

①首先要在蚂蚁金服开放平台办理入驻,如果提示账号存在异常入驻失败建议更换企业账号重新办理.

②入驻成功后创建应用,具体官方文档很详细,主要是为了应该审批通过后拿到appid和支付宝公钥进而继续接下来的开发工作,如果是为对接其他项目建议创建应用时候选择类型为第三方应用

③下载密钥生成工具生成公钥和私钥

④总体开发逻辑---

我作为ISV(第三方开发)开发对接口碑,相当于我是中间商,为甲方开发打通口碑平台,所以我需要甲方商圈的数据作为支持,这就涉及到了授权模式,授权链接为如下固定链接:

https://openauth.alipay.com/oauth2/appToAppAuth.htm?app_id=2018041802578364&redirect_uri=http://wxqhdyjy.cn/koubei/interfaceController/alipayMarketCardTemplateCallBack

参数说明:

app_id 为你在口碑开放平台注册的应用的id;

redirect_uri 为商户确认授权后的回调地址,具体回调参数接收处理需要根据业务自己实现,并且这个回调地址是注册应用   时配置的地址 ,应保持一致.授权成功后会拿到auth_code用来换取access_token,token信息在后续开发中作为ISV调用接口时会用到

一 大致说下步骤:

0,图片上传获得创建模板所需要的图片id

1,创建会员卡模板

2,会员卡开卡表单模板配置

3,商圈id和模板id绑定(需由口碑PD完成)

4,商圈交易信息接口订阅

5,生成会员开卡授权链接

6,会员开卡

7,会员交易信息处理(积分同步)

二 步骤详细说明

官方API文档地址:https://docs.open.alipay.com/251/105731

0,图片上传

官方已经封装好操作对象,不需要我们具体知道底层实现细节,如果需要详细了解可看jar包源码

        /*** 图片上传接口*/public static void alipayOfflineMaterialImageUpload() {AlipayOfflineMaterialImageUploadRequest alipayRequest = new AlipayOfflineMaterialImageUploadRequest();alipayRequest.setImageType("jpg"); //图片类型,当前支持bmp,png,jpeg,jpg,gif 5个类型alipayRequest.setImageName("图片名称");FileItem ImageContent = new FileItem("E:/timg (1).jpg"); //图片文件路径,Windows请填写绝对路径,不支持相对路径;Linux支持相对路径alipayRequest.setImageContent(ImageContent);try {AlipayOfflineMaterialImageUploadResponse alipayResponse = alipayClient.execute(alipayRequest);String imageId = alipayResponse.getImageId(); //获取图片资源IDSystem.out.println(imageId);} catch (Exception e) {e.printStackTrace();}}

1,创建会员卡模板

创建会员卡模板之前如果是ISV的话,需要商圈给你授权.授权链接如下:

https://openauth.alipay.com/oauth2/appToAppAuth.htm?app_id=2018041802578364&redirect_uri=http://wxqhdyjy.cn/koubei/interfaceController/alipayMarketCardTemplateCallBack

参数说明:

app_id 为你在口碑开放平台注册的应用的id;

redirect_uri 为商户确认授权后的回调地址,具体回调参数接收处理需要根据业务自己实现,并且这个回调地址是注册应用   时配置的地址 ,应保持一致.授权成功后会拿到auth_code用来换取access_token,token信息在后续开发中作为ISV调用接口时会用到

/*** 支付宝授权回调接口* 参数说明:* request_id 参数使用“会员卡表单信息查询接口”从支付宝查询用户此次领取会员卡表单提交的信息,用户后续会员卡开卡* out_string : 配置会员模板时配置的参数,现作marketNo* template_id : 模板id* auth_code : auth_code作为换取access_token的票据,每次用户授权完成,回调地址中的auth_code将不一样,auth_code只能使用一次,一天未被使用自动过期* app_auth_code : 商户授权,用来换取app_auth_token*/@RequestMapping(value="/interfaceController/alipayMarketCardTemplateCallBack")public void alipaiMarketCardTemplateCallBack(HttpServletResponse resp,String auth_code,String templateId,String marketNo,String app_auth_code,String app_id) {if(StringUtils.isNotBlank(app_auth_code)) {AlipayOpenAuthTokenAppRequest request = new AlipayOpenAuthTokenAppRequest();AlipayOpenAuthTokenAppModel model = new AlipayOpenAuthTokenAppModel();model.setGrantType("authorization_code");model.setCode(app_auth_code);request.setBizModel(model);try {AlipayOpenAuthTokenAppResponse response = alipayClient.execute(request);String code = response.getCode();if("10000".equals(code)) {JSONObject json_body = JSONObject.parseObject(response.getBody());JSONObject json_infos = JSONObject.parseObject(json_body.get("alipay_open_auth_token_app_response")+"");
//                  token = json_infos.getString("app_auth_token");if(StringUtils.isNotBlank(token)) {//根据app_auth_token查询商户授权信息AlipayOpenAuthTokenAppQueryRequest request_query = new AlipayOpenAuthTokenAppQueryRequest(); AlipayOpenAuthTokenAppQueryModel model_query = new AlipayOpenAuthTokenAppQueryModel();model_query.setAppAuthToken(token);request_query.setBizModel(model_query);AlipayOpenAuthTokenAppQueryResponse response_query = alipayClient.execute(request_query);JSONObject json_body_token = JSONObject.parseObject(response_query.getBody());System.out.println("获取商户授权信息成功!");System.out.println(json_body_token);}}else {System.out.println("获取商户授权信息失败");}return;} catch (Exception e) {e.printStackTrace();return;}}List<String> userId_token = access_token(auth_code);AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest();try {if(userId_token!=null&&userId_token.size()==2) {AlipayUserInfoShareResponse  response = alipayClient.execute(request,userId_token.get(1));JSONObject json_body = JSONObject.parseObject(response.getBody());JSONObject json_infos = JSONObject.parseObject(json_body.get("alipay_user_info_share_response")+"");json_infos.put("marketNo", marketNo);String redirectUrl = alipayMarketingCardOpenRequest(userId_token, templateId, json_infos);resp.sendRedirect(redirectUrl);}else {logger.error("客户id或者token信息不全!");}} catch (Exception e) {e.printStackTrace();}}

注意:商圈的授权和会员领卡链接的授权回调地址一致,所以写到了一个方法中,需判断是哪种授权进而不同情况单独判断

 /*** 获取支付宝AccessToken* @param auth_code* @return*/public static List<String>  access_token(String auth_code){List<String> msg = new ArrayList<>();AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();request.setCode(auth_code);request.setGrantType("authorization_code");try {AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClient.execute(request);msg.add(oauthTokenResponse.getUserId());msg.add(oauthTokenResponse.getAccessToken());return msg;} catch (AlipayApiException e) {//处理异常e.printStackTrace();return msg;}}

首先商场创建自己的会员卡模板,设置好模板相应配置,设置成功支付宝会返回一个领卡链接,这个链接可设置在商场口碑中或者门店中生成二维码,通过该链接点击效果如下

客户点击领卡后,支付宝回调领卡页面设置的回调地址传回会员参数等信息,进而为该会员开卡,客户获得会员卡后可查询卡详细信息,修改卡部分信息,删除会员卡信息,当会员通过支付宝消费时同步消费记录,进行信息的同步.

哎,自己理了半天,发现支付宝已经给写好流程了.真是贴心啊,粘贴一下下

我是如此膜拜支付宝的贴心服务~

PS:因口碑会员消费同步接口找不到客服也联系不上,口碑开发暂时搁浅

记录 支付宝口碑--商户会员卡 开发历程相关推荐

  1. .NET版支付宝商户会员卡接入

    最近公司计划对接支付宝会员卡功能,而任务恰巧由领导安排给我这边,小弟之前也未做过支付宝接口,研究了三天,终于将支付宝会员卡API接口大体上调通了,现将其整理下,以供参考. 蚂蚁金服开发平台-商户会员卡 ...

  2. 支付宝七(商户会员卡之发放卡券)

    支付宝会员卡发放 接口实现 部分功能 1. 发放会员卡 # 会员卡 开卡public function openCard(){$this->load->helper('url');$acc ...

  3. 支付宝六(商户会员卡之模板创建)

    商户会员卡模板创建一直持续了大半个月的时间,天天与支付宝的技术进行沟通,终于创建成功了,这里Mark一下. 1. 构建模板参数 下面的模板参数中,有许多前面加了注释符号,基本都是可选参数,而且容易导致 ...

  4. 07_UI基础_UITableView实战- 支付宝口碑

    此篇为针对ios中的UI基础知识,为了能让大家更清楚的理解,此整理中编写了采用知识点+案例的方式,配有非常详细的截图和代码注释,添加了许多大白话进行解释,如有错误之处,望指正,愿与您相互交流学习,共同 ...

  5. ECSHOP 支付宝发货确认接口,记录支付宝返回的交易号

    1,在order_info 数据表尾添加trade_no 字段 数据表尾怎么添加trade_no 字段 ECSHOP为了支付宝发货确认接口,需要记录支付宝返回的交易号 1,在order_info 数据 ...

  6. 上海女白领吃火锅碰瓷,支付宝口碑居然真的要赔?

    昨天中午,新闻晨报在微博上发出一条新闻:上海一位汪小姐吃火锅的时候,因用支付宝口碑扫码中了一个999元大红包,结果因为太激动手机不小心掉进油汤里,捞出来以后开不了机了.关键是这位小姐觉得这是口碑和商家 ...

  7. 微信支付宝多商户解决方案

    微信支付宝多商户解决方案 背景 项目目前微信支付宝支付时是直接将款项打到平台账户中,期望可以将款项打到对应的商家账户中. 支付宝 通过查找资料(如何实现一个项目配置多个商户信息付款给对应商户),支付宝 ...

  8. 支付宝 口碑会员卡模板创建实例

    alipay.marketing.card.template.create(会员卡模板创建)https://docs.open.alipay.com/api_5/alipay.marketing.ca ...

  9. 支付宝无线商户签约指南

    最近开发的一款产品使用了支付宝作为应用内支付手段,所以简单记录一下需要的步骤,以供大家参考. 前提条件: 申请支付宝账号,我这里申请的公司账号: 开通账号实名认证: 去产品商店:https://b.a ...

最新文章

  1. Java模拟面试总结
  2. python源代码的后缀名是_Python代码编译与反编译
  3. Python3学习笔记——类
  4. Jmeter接口测试-断言
  5. linux搜索指定文件夹里文件是否存在,Linux文件操作之文件查询与搜索命令详解...
  6. 网络工程师需要具备哪些素质或专业技术
  7. 理解C# 4 dynamic(2) – ExpandoObject的使用
  8. Arduino笔记-呼吸流水灯
  9. 图像语义分割 -- UNET++
  10. AI加持,华为云视频服务助力企业直播行业
  11. Rich feature hierarchies for accurate object detection and semantic segmentation(理解)
  12. java 与c des_Java和C/C++进行DES/AES密文传输
  13. ef导入oracle数据类型不正确,EF Core操作Oracle踩坑记
  14. js复制json对象
  15. 如何将pdf转换成word文档,文件格式转换器选择
  16. lingo数学软件完整教程
  17. 靶场练习之hackinglab(鹰眼)-基础题
  18. QQ小程序 应用类型不匹配
  19. MXNet的训练基础脚本:base_module.py
  20. 数字平原CG场景搭建制作流程解析

热门文章

  1. 2022-08-01 零基础吉他入门知识(二) 吉他上的十二平均律,给吉他调弦,规范化弹吉他:节拍器,持琴姿势和拨弦手势
  2. 计算机在流体力学中的应用,流体力学原理在游泳中的应用
  3. vue进度条组件_ins风格进度栏的Vue组件
  4. ae锚点居中快捷键是什么?还有这4个快捷键超级实用
  5. 申宝证券-养老概念强势
  6. Day01.HTML5
  7. Android多国语言翻译 字符串目录详解
  8. 天翼云赋能智慧农业 新农人迎来好收成
  9. 近在身边的神秘卫士——月球
  10. MyBatis-Plus--自定义SQL