范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

针对支付宝当面付实现的个人支付

  项目背景
  为什么想做这个 一是工作中也接触到了支付宝,微信支付方面,二是自己也想弄个收费服务,比如之后做的程序想收费可以直接让用户扫码支付,而不用微信交流了。
  测试地址 Document了解什么支付适合个人支付
  微信支付:需要营业执照,个人不好弄,所以放弃。
  支付宝手机支付:大多也需要营业执照,个人不好弄,所以放弃。
  爬虫和监听收款手机信息:操作太复杂,爬虫好像说也容易被封,放弃。
  支付宝当面付,暂时可以支持个人不需要营业执照,只需要店面图片即可,所以了解到这,直接开搞。开通支付宝当面付流程开通 当面付(点击下方链接开通)
  开通 当面付填写相关资料经营类目 选择 "百货零售 / 其他零售 / 杂货店",或者其他...问题不大营业执照 可不上传店铺招牌 可以拍一下身份的百货店,或者百度找一张类似的图等待审核(工作日的话大概30分钟,非工作日就不好说了)创建应用并且添加支付能力
  可以参考官方文档:(或者按照我的步骤下面步骤)
  创建应用创建应用(点击链接进入)
  open.alipay.com/platform/de…
  填写相关应用资料应用名称应用图标应用 添加能力
  应用 开发设置设置 接口加签方式,手机收到验证码填写下载 支付宝开放平台开发助手即密钥生成工具 opendocs.alipay.com/open/291/in…
  上传刚才生成的应用公钥
  点击保存上传的应用公钥之后,会弹窗给出支付宝的公钥
  设置应用网关等
  应用 提交审核
  审核一般一天左右,运气好半天就可以
  开始写代码
  当面付,我总结流程就分两步,1. 获取支付二维码,2. 支付回调。
  获取支付二维码public String preCreateOrder(AliPayInfo aliPayInfo) throws AlipayApiException {         AlipayClient alipayClient = aliPayBusinessConfig.getAlipayClient();         AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();         request.setNotifyUrl("https://ggball.top/notify/ali/pay/face/notify");         JSONObject bizContent = new JSONObject();         bizContent.put("out_trade_no", aliPayInfo.getOutTradeNo());         bizContent.put("total_amount", aliPayInfo.getTotalAmount());         bizContent.put("subject", aliPayInfo.getSubject());  //// 商品明细信息,按需传入 //JSONArray goodsDetail = new JSONArray(); //JSONObject goods1 = new JSONObject(); //goods1.put("goods_id", "goodsNo1"); //goods1.put("goods_name", "子商品1"); //goods1.put("quantity", 1); //goods1.put("price", 0.01); //goodsDetail.add(goods1); //bizContent.put("goods_detail", goodsDetail);  //// 扩展信息,按需传入 //JSONObject extendParams = new JSONObject(); //extendParams.put("sys_service_provider_id", "2088511833207846"); //bizContent.put("extend_params", extendParams);  //// 结算信息,按需传入 //JSONObject settleInfo = new JSONObject(); //JSONArray settleDetailInfos = new JSONArray(); //JSONObject settleDetail = new JSONObject(); //settleDetail.put("trans_in_type", "defaultSettle"); //settleDetail.put("amount", 0.01); //settleDetailInfos.add(settleDetail); //settleInfo.put("settle_detail_infos", settleDetailInfos); //bizContent.put("settle_info", settleInfo);  //// 二级商户信息,按需传入 //JSONObject subMerchant = new JSONObject(); //subMerchant.put("merchant_id", "2088000603999128"); //bizContent.put("sub_merchant", subMerchant);  //// 业务参数信息,按需传入 //JSONObject businessParams = new JSONObject(); //businessParams.put("busi_params_key", "busiParamsValue"); //bizContent.put("business_params", businessParams);  //// 营销信息,按需传入 //JSONObject promoParams = new JSONObject(); //promoParams.put("promo_params_key", "promoParamsValue"); //bizContent.put("promo_params", promoParams);          request.setBizContent(bizContent.toString());         AlipayTradePrecreateResponse response = alipayClient.execute(request);         if(response.isSuccess()){             System.out.println("调用成功");             log.info("res:{}",response.getBody());              JSONObject jsonObject = JSONObject.parseObject(response.getBody());             return jsonObject.getJSONObject("alipay_trade_precreate_response").getString("qr_code");          } else {             log.error("res:{}",response.getBody());             System.out.println("调用失败");             return "";         }     }
  如果在本地測試的話,可以使用钉钉给的免费的内网穿透工具,这里我是使用自己的服务,frp内网穿透到本地的。回调地址一定是公网能够访问到的域名,要不然回调会失败。支付回调@PostMapping ("/notify")     public String preOrderNotify(HttpServletRequest request) throws AlipayApiException {         //获取支付宝POST过来反馈信息,将异步通知中收到的待验证所有参数都存放到map中         Map params = new HashMap();         Map requestParams = request.getParameterMap();         for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) {             String name = (String) iter.next();             String[] values = (String[]) requestParams.get(name);             String valueStr = "";             for (int i = 0; i < values.length; i++) {                 valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";             }             //乱码解决,这段代码在出现乱码时使用。             //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");             params.put(name, valueStr);         }         log.info("params:{}",params);            //调用SDK验证签名         //公钥验签示例代码         boolean signVerified = AlipaySignature.rsaCheckV1(params, aliPayBusinessConfig.getPublicKey(), aliPayBusinessConfig.getCharset(), aliPayBusinessConfig.getSignType());         //公钥证书验签示例代码         //   boolean flag = AlipaySignature.rsaCertCheckV1(params,alipayPublicCertPath,"UTF-8","RSA2");          PayBill oldPayBill = payBillService.getPayBillByNotifyId(params.get("notify_id"));         if (null != oldPayBill) {             return "success";         } else if (signVerified) {             // TODO 验签成功后             PayBill payBill = new PayBill();             payBill.setOrderNum(params.get("out_trade_no"));             payBill.setIsPay(true);             payBill.setNotifyId(params.get("notify_id"));             payBill.setPayerId(params.get("buyer_id"));             payBill.setSellerEmail(params.get("seller_email"));             payBill.setSellerId(params.get("seller_id"));             payBill.setTradeNo(params.get("trade_no"));             payBill.setBuyerLogonId(params.get("buyer_logon_id"));             PayBill newPayBill = payBillService.updatePayBill(payBill);              // push queue             try {                 QueueCore billQueueCore = new QueueCore<>("NOTIFY_JOB");                 billQueueCore.get("NOTIFY_JOB").push(newPayBill);             } catch (InterruptedException e) {                 throw new RuntimeException(e);             }              return "success";             //按照支付结果异步通知中的描述,对支付结果中的业务内容进行1234二次校验,校验成功后在response中返回success         } else {             // TODO 验签失败则记录异常日志,并在response中返回fail.             return "fail";         }      }
  這里是支付宝提供的代码,验签失败和成功可以添加自己的逻辑代码,这里我是将结果放在队列里,为了后续将数据保存到数据库,将支付结果通知给我的其他服务等等。
  测试截图
  测试地址
  Document

你阳了吗?我有阴性焦虑了最近不管干点啥,注意力都会被疫情吸引,没办法,这波变化实在太快,也是距离每个人最近的一次身边的朋友也越来越多阳了,感觉自己啥时候阳,都不好说啊去了一趟乌镇,对比得就更明显两周多前出惠州公布今年下半年旅游纠纷典型案例近日,惠州市文化广电旅游体育局官网公布了2022年下半年惠州市旅游纠纷典型案例游客钱某某等人报名参加旅游团,因突发新冠肺炎疫情行程临时变更要求退回部分团费,惠城区文化广电旅游体育局美好生活指南展馆上线文化元宇宙助推文旅发展11月30日,华侨城华南集团2022美好生活指南元宇宙线上展览正式发布。以元宇宙数字空间的独特创意,将南方特有的城市生活人文艺术娱乐体验非遗传统等内容集合展现,打造出一场沉浸式生动精耕鲜活品质,旗帜乳业摘得全球科技创新奖金奖现如今,婴配粉赛道的竞争程度已经从充分竞争衍变到了激烈竞争。同时,国家政策和消费需求也对奶粉品牌的要求一再提高。在此之下,乳企要在科研创新产业链等各个维度具备强硬的综合实力,才能在拥抱变革,链接未来如新NU店如新EMPOWERME战略生态圈(品牌供图)如新LumiSpaiO美容仪文图涂端玉如新紧跟时代步伐,积极拥抱新科技,研发新一代智能物联产品,打造共融的数字化生态系统持续赋虚拟仿真实训室给高校教学带来什么作者熊丙奇大屏幕上,实时股票行情一览无余操作台前,交易概况可实时进行大数据分析上个月底,湖北省首家新金融智慧学习工场启用,走进其中,仿佛置身纽约证券交易所,仿真式教学开启全新的学习魅族20系列再曝,充电器通过认证,80W快充加持2021年3月,魅族发布了魅族18系列旗舰。2021年9月,魅族18s系列手机也正式亮相。随后,不少用户也在关注后续的魅族19系列产品迭代。今年6月,魅族发起了魅友,心爱传家的第一济宁天立学校小学部世界机器人大赛再创佳绩2022年BoxBot机器人格斗设计赛(线上)是一项致力于普及提高机器人知识和图形化编程能力的线上赛事。本赛事规则开放,选题丰富,更多考验参赛选手的创造力。济宁天立学校一直秉承着天认识现代农业的模样这些重大新技术新产品新装备刚刚发布新京报讯(记者周怀宗)现代农业是什么模样的?我国的农业机械化智能化,无人农场等,究竟有哪些技术产品和装备?12月16日,在北京举行的2022中国农业农村科技发展高峰论坛暨中国现代农智能手表不一定只选苹果,这款苹果安卓都能用的才是今年最香现在疫情之下,大家对于健康和运动这个方面愈发关注,而拥有这两方面功能的智能手表也是逐渐受到大众的重视。除了大家所熟悉的苹果AppleWatch外,国产手表也是开始逐渐走近大众视野,36家中国企业列入美国实体清单!中国商务部回应违背市场规律,破坏国际经贸秩序继10月升级对华半导体等高科技出口管制,美国商务部方面最新更新了实体名单,纳入36家中国科技公司,同时将25家实体移出未经验证清单。对此,12月16日,中国商务部表示,美方频繁将中
你被大姨妈骗了多久?所谓的经期禁忌,也许是假的,该知道了总是怕它来,又怕它不来的就是大姨妈。想要顺利的度过这段时间,可不是一件容易事儿,得按它要求来。子宫内膜的周期性变化称为月经周期,也是人类的生殖周期。通常把月经的第一天到下次月经来临还整天待在空调下?当心高温天气里的低温杀手酷暑来袭1hr你是不是也越来越离不开空调带来的清凉?无论是在单位工作,还是下班回家,都喜欢将空调调到足够低?当心在惬意享受清凉的同时,千万别忽视了空调使用背后的隐忧,稍不注意,极易吉林一酒席真豪横炒菜用铁锹,凉菜用手抓,喝酒用大碗,羡慕吗吉林一酒席真豪横炒菜用铁锹,凉菜用手抓,喝酒用大碗,羡慕吗你见过最豪横的酒席是什么样子吗?有人说那些有钱人置办的酒席很豪横,究其原因,每一桌都在数千乃至上万块钱,酒席之烟为中华,酒吃前必须焯水的蔬菜,不仅影响口感,还危害家人健康做菜有一道工序叫做焯水,是烹饪前处理食材的关键一步。有些蔬菜不用焯水,可以直接下锅炒制但有些蔬菜,若是省去这一步,则可能带来健康危险!今天小万仔就给大家盘一盘,哪些蔬菜不焯水有危险黑色素瘤饮食禁忌黑色素瘤的患者在饮食方面是存在很多禁忌的,患者在平时生活当中应该禁止腌制食物烟熏食物油腻食物等等,这几类食物都会对病症的正常恢复造成影响,所以需要尽量避免。除了饮食之外,患者还需要哈姆现在仍是詹姆斯的时代哈姆现在仍是詹姆斯的时代北京时间8月27日,湖人新帅达尔文哈姆在接受采访时谈到了詹姆斯续约的问题。此前,洛杉矶湖人官方宣布提前续约勒布朗詹姆斯,合同为两年9710万美元。这件事意义广西为什么会选择重点发展贵港而不是玉林?贵港和玉林,都是广西重要的城市。最近几年,贵港发展还是比较不错的,是广西重点打造的工业城市玉林发展也比较迅速,取得了一些成绩。为什么广西会选择重点发展贵港而不是人口更多的玉林呢?首沪鄂滇三地银保监局局长谈银保发展这十年金融服务地方重点产业创新谋高质量发展本报记者杨井鑫北京报道9月15日,上海湖北和云南三地银保监局局长在银保监会例行新闻发布会上,对地方银行业保险业这十年的发展情况进行了详细介绍。十年来,三地银行业保险业的资产稳步增长三年前,我们可以和波兰扳手腕,现在连跟人家打球的资格都没了一觉醒来,欧锦赛变天了,上一届卫冕冠军回家钓鱼了。紧随约基奇字母哥之后,东77也没能躲过被淘汰的命运。就像被安排好了一样,别急,咱们一个一个来,先从风头最盛的MVP的下手吧。三位最乔丹投资的高端二手腕表平台大举杀入中国记者黄姗编辑楼婍沁上海线下WatchBox会客室将是一个集合体,主要包括体验聚会,以及日后的零售等功能服务。它会像是一个俱乐部,整体以现代复古的空间风格为主。WatchBox中国新夜读丨人生最好的活法让自己开心,让别人放心,让家人安心作者蓁蓁来源国学生活(IDgxsh789)古人云甘瓜苦蒂,天下物无全美。再甘甜的瓜果,瓜蒂都是苦的,这世间就没有完美的事物。亦如我们的人生,什么都想求全,什么都想抓住,到最后却发现