微信开发使用后端接口_微信开发之服务器微信支付接口笔记-(与app端对接) - CSDN
  • 微信开发的时候,必须要输入URL,而该URL必须是外网域名,我们本地没法进行调试,这给我们造成很大的不方便,系统在开发阶段容易出现bug,如果服务器上的版本已经在运行了,我们不能在那基础上进行开发调试,所以...

    来自 http://jingyan.baidu.com/article/f006222826c2bcfbd3f0c885.html

    在微信开发的时候,必须要输入URL,而该URL必须是外网域名,我们本地没法进行调试,这给我们造成很大的不方便,系统在开发阶段容易出现bug,如果服务器上的版本已经在运行了,我们不能在那基础上进行开发调试,所以能够在本地进行微信开发很重要。

    工具/原料

    • 微信公众号一个
    • ngrok

    方法/步骤

    1. 要解决微信本地开发,一个关键的问题是能够把本地的IP地址映射到公网上去,从网上找下相关的解决方案,最终借助ngrok很容易解决,访问官网https://ngrok.com/下载ngrok,解压后只有ngrok.exe一个文件

      如何本地调试微信接口
      如何本地调试微信接口
    2. windows-->运行-->cmd,进入到ngrok.exe的根目录,输入ngrok 80,这样可以将本机的127.0.0.1:80分配一个外网可以访问的域名

      如何本地调试微信接口
    3. 遗憾的是该域名是随机的,每次重启都会变,这不利于我们微信调试,所以我们希望将域名固定住,仔细查看ngrok官网,ngrok已经给我们了解决方案,需要我们注册下

      如何本地调试微信接口
    4. 注册成功后,会得到一个token

      如何本地调试微信接口
    5. 还是在windows-->运行-->cmd中,进入ngrok.exe目录,输入:

      ngrok -authtoken token 80

      其中token换成我们注册后返回的值,回车后,成功启动

      如何本地调试微信接口
    6. 但是返回的token太长了,不方便记忆,我们换一个方便记忆的名字,输入

      ngrok -subdomain leopard 80

      如何本地调试微信接口
    7. 回车后,成功启动,下面我们需要验证下输入域名:http://leopard.ngrok.com是否能够通过微信的URL校验

      如何本地调试微信接口
    8. 打开微信公众平台,选择开发者中心,在右边的表单中输入相关内容,URL中输入我们刚设置过的域名

      如何本地调试微信接口
    9. 提交成功,说明我们的设置是有效的,此时已经在tomcat中可以看到我们在get方法下的返回值

      如何本地调试微信接口
    展开全文
  • 开发微信小程序需要前后端一起配合,前端通过微信提供的工具开发,实际页面、样式及JS代码部署在微信服务器;后端可以通过JAVA语言开发,实现具体业务逻辑并与数据库、Redis缓存、MQ等进行交互,代码部署在开发者...

    开发微信小程序需要前后端一起配合,前端通过微信提供的工具开发,实际页面、样式及JS代码部署在微信服务器;后端可以通过JAVA语言开发,实现具体业务逻辑并与数据库、Redis缓存、MQ等进行交互,代码部署在开发者服务器;调用微信提供的API时,后端开发关键点有两个:

    一、在前端调用wx.login() 获取 临时登录凭证code之后,将code字符串发送给后端,后端通过auth.code2Session接口获取用户唯一标识 OpenID 。

    为什么非要获取OpenID?因为一个微信小程序客户在此微信小程序之内,这个OpenID是唯一的,在客户登录、使用小程序的整个过程中,开发者的后端服务就是通过它来区分不同用户的。
    前端的code只是临时凭证,是有时效性的,统一OpenID的用户在每次登录小程序时code不一样。

    后端获取OpenID非常简单,遵循微信小程序提供的帮助文档就成,直接Get这个地址:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code, 将appid、secret、js_code、grant_type放进去,然后解析出返回的JSON串就可以啦。
    比如用SpringBoot开发,可以将getOpenId封装成一个服务方法,在登录的时候直接调用就可以啦。
    代码如下:

    @Override
    public CodeToSessionEntity getOpenId(String code, String logUniqueFlag) {
        String requestUrl = mallConstant.getWx_getopenid_url();
        String appId = mallConstant.getWx_appid();
        String secret = mallConstant.getWx_appSecret();
        String getUrlPath = requestUrl + "?" + "appid=" + appId + "&secret=" + secret + "&js_code=" + code + "&grant_type=authorization_code";
        try {
            sessionEntity = restTemplate.getForObject(getUrlPath, CodeToSessionEntity.class);
        } catch (Exception e) {
            log.error("{}-根据code从微信小程序获取OpenId的值发起请求,出现了异常!e={}", logUniqueFlag, e);
        }
        log.info("{}-根据code从微信小程序获取OpenId的值发起请求,url={},result={}", logUniqueFlag, getUrlPath, sessionEntity.toString());
        return sessionEntity;
    }
    

    调用处代码如下:

    CodeToSessionEntity sessionEntity = weiXinService.getOpenId(code, mtmWxCodeReq.getLogUniqueFlag());
    

    二、后端业务逻辑如果打算调用微信提供的活体认证(生物认证)、物流助手、大数据分析能力,那么就需要access_token,这个access_token是调用这些api的接口调用凭证。

    比如说调用生物认证能力,必须得有access_token。
    在这里插入图片描述
    获取access_token比获取OpenID还要简单,只要Get这个地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET, 将appid、secret放进去,然后解析出返回的JSON串就成。

    “模拟大量微信小程序用户对平台进行并发访问的性能测试指引”请参考
    https://blog.csdn.net/pharos/article/details/89397826

    展开全文
  • 微信小程序 后端接口

    2018-12-14 11:42:40
    主要controller接口   <?php namespace Addons\Fenxi\Controller; use Home\Controller\AddonsController; class FenxiController extends AddonsController{ #这个是写接口 function getList(){ $...

     

    主要controller接口

     

    <?php
    
    namespace Addons\Fenxi\Controller;
    use Home\Controller\AddonsController;
    
    class FenxiController extends AddonsController{
    	#这个是写接口
    	function getList(){
    		$list = M('Fenxi')->order('id desc')->field('id,username,photo,cTime')->select();
    		#这个函数编写方法:标识+id排序降序+文件返回几类+方法
    		#下面的for主要是走一遍流程,没有定义返回的方法类,所以需要自己实现。
    		foreach ($list as &$vo) {
    			$vo['photo'] =get_cover_url($vo['photo']);
    			$vo['cTime'] =time_format($vo['cTime']);
    			# code...
    		}
    
    	//	dump($list);  #下载
    		$this->ajaxReturn($list); #输出格式为json格式
    	}
    	function getDetail(){
    		$map['id']=I('id',0,'intval');  //格式化安全
    		$info =M('Fenxi')->where($map)->find();
    
    		$info['photo']=get_cover_url($info['photo']);
    		$info['cTime']=time_format($info['cTime']);
    	//	dump($info);
    		$this->ajaxReturn($info);
    	}
    	
    		// 通用插件的列表模型
    	public function lists($model = null, $page = 0) {
    		// 通用表单的控制开关
    		$this->assign ( 'add_button', true );
    		$this->assign ( 'del_button', true );
    		$this->assign ( 'search_button', checkRule ( '__MODULE__/__CONTROLLER__/search', $this->mid ) );
    		$this->assign ( 'check_all', true );
    		$this->assign ( 'top_more_button', $this->top_more_button );
    		
    		is_array ( $model ) || $model = $this->getModel ( $model );
    		$templateFile = $this->getAddonTemplate ( $model ['template_list'] );
    		parent::common_lists ( $model, $page, $templateFile );
    	}
    	
    	public function addFenxi(){
    		$data["username"] =I('username',"空",'intval');    //第二个个为默认
    		$info['img']=get_cover_url($info['img']);
    	/* 	$data["from"]     =I('from',0,'intval');
    		
    		$data["is_dev"] =I('is_dev');
    		$data["is_dev"] =$data["is_dev"]==true ? 1:0;
    		
    		$data["area"]  =I('area',0,'intval');
    		$data["score"] =I('score',0,'intval');
    		
    		$data["product"]  =str_replace(array('"','[',']'),'',I('product'));
    	 */	
    		$data['cTime'] = NOW_TIME;
    		
    		$res =M('Fenxi') ->add($data);
    		echo intval($res);
    	
    	}
    }
    
    
    

     

     

     

    对应接口的功能

     

    http://****t.cn/weiphp/weicms/index.php?s=/addon/Fenxi/Fenxi/getList

    http://****t.cn/weiphp/weicms/index.php?s=/addon/Fenxi/Fenxi/getList/id/1

     

    http://***t.cn/weiphp/weicms/index.php?s=/addon/Fenxi/Fenxi/addFenxi

     

     

     

     

    后端thinkphp内容

     

     

     

     

     

    代码打包:如下

     

    网站代码:

    下载地址

    https://share.weiyun.com/5taIyxc

     

    网站的密码后台,关键目录,代码位置等:

    权限777全目录

    地址:http://n****.cn/weiphp/weicms/index.php

    统一账号:admin ,密码admin

    数据库地址:http://****7/phpmyadmin/index.php?db=weicms&target=db_structure.php&token=d4a0180fd2ce2fdbf3dd652fed59b5ff (需要谷歌浏览器才可打开////)

    账号:root 密码root

     

    关键目录地址:上述图片所展示的功能

     

    继承上传图片的接口:

    附件

    FileController.class.php

     

     

    代码相应位置

     

     

     

    预期:

    将上传图片的功能也可以写成如例子所示,

    http://***.cn/weiphp/weicms/index.php?s=/addon/Fenxi/Fenxi/????

    ???替换为uploadpicture

     

    但是通过数据库观察

     

     

    展开全文
  • 基于springBoot2.0以上的微信分享接口后端实现,代码绝对可复用,稍加修改就可以为您所用
  • 微信小程序后端开发

    2020-04-10 17:41:49
    新需求:开发微信小程序,能查询 Portal 系统的数据。 新需求详解: 入口:“magic公司”微信公众号,点击底部菜单“智慧服务”-“货主在线门户”,打开 “XXX在线服务“” 小程序。 用户的微信号首次打开 打开 ...

    一、现有:公司Portal Web系统。

    新需求:开发微信小程序,能查询 Portal 系统的数据。

    新需求详解:

    入口:“magic公司”微信公众号,点击底部菜单“智慧服务”-“货主在线门户”,打开 “XXX在线服务“” 小程序。

    用户的微信号首次打开 打开 “XXX在线服务“”  小程序时(此微信号还未绑定Portal账号的),弹出登录页的微信绑定/手机绑定页面,需要微信快捷绑定 或 手机号绑定(手机号及短信验证码),提交时通过手机号找到对应的Portal账号.

    未能查找到有效的Portal账号(账号启用,对应货主启用)则提示“此手机号未开通XXX在线服务,请联业务员”,绑定失败;否则绑定成功,直接显示此货主的运营首页。

    二、用户账号表user_customer

    CREATE TABLE `user_customer` (
      `id` bigint(64) NOT NULL,
      `user_name` varchar(20) DEFAULT NULL COMMENT '用户账号',
      `company_id` bigint(64) DEFAULT NULL COMMENT '组织id',
      `password` varchar(50) DEFAULT NULL COMMENT '登录密码',
      `random_code` int(4) DEFAULT NULL COMMENT '密码盐值',
      `real_name` varchar(20) DEFAULT NULL COMMENT '用户姓名',
      `status` tinyint(1) DEFAULT '1' COMMENT '状态(0禁用 ,1启用)',
      `type` int(1) DEFAULT '2' COMMENT '账号类型(po用户)',
      `phone` varchar(11) DEFAULT NULL COMMENT '手机号',
      `customer_id` bigint(64) DEFAULT NULL COMMENT '所属货主',
      `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
      `update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
      `create_user` bigint(64) DEFAULT NULL,
      `update_user` bigint(64) DEFAULT NULL,
      `deleted` tinyint(1) DEFAULT '0',
      `bind_wechat` tinyint(1) DEFAULT NULL COMMENT '微信小程序绑定(1-绑定,0-未绑定)',
      `open_id` varchar(100) DEFAULT NULL COMMENT '微信openId',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;

    三、后端开发流程

    1.提供微信小程序登录接口。小程序拿code换取openId。

    2.提供获取用户绑定手机号信息。小程序拿着sessionKey、encryptedData(加密)、iv,调后台接口获取手机号(解密)。

    3.微信小程序绑定Portal账号(user_customer,手机号和openId绑定)。

    两种方式:

    第一种:微信快捷绑定,小程序获取手机号;

    第二种:输入手机号、验证码,绑定。(这里先跳过)

    4.微信小程序portal登录(参数传openId)

    5.微信小程序portal账号解绑(参数传openId)

    6. 接口1-4网关不拦截(不需要校验token及权限),需要配置网关不拦截。

     

    四、参考资料

    1.微信公众平台 申请账号

    https://mp.weixin.qq.com

    2.微信小程序登录时序

    https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 

    3.参考开发

    https://github.com/binarywang/weixin-java-miniapp-demo 

    展开全文
  • 例如:用户表的主键id存的是18位的biglong类型的,在查询列表的时候,返回的一律是转换成long的数据,android、ios、web端、移动端均正常,只有微信小程序端接收转换的时候出错,然后从列表进详情页就出现拿不到数据...
  • 微信分享后台接口简单实现 此接口大致的流程是:用户创建时间戳,随机字符串,当前需要分享的页面的url三个变量,接着将自己的appid和APPsecret作为请求参数获取access_token,再根据access_token获取jsapi_ticket,...
  • 微信分享后台接口简单实现 此接口大致的流程是:用户创建时间戳,随机字符串,当前需要分享的页面的url三个变量,接着将自己的appid和APPsecret作为请求参数获取access_token,再根据access_token获取jsapi_ticket,...
  •  因为是第一次真正接触后端开发,从编码到部署服务器到上线,所以做个笔记,也供和我一样的开发小白一些参考。 一、前期工作:开发环境与工具:  1. 编程语言:Java #笔者还没学PHP,只想到了Java.  2. (后端)...
  • 微信小程序通过解密encrytedData(iv、sessionKey),获取用户信息 appid: 应用唯一标识 secret:应用密钥 code:wx.login()获取 encryptedData: 解密的目标密文,用户完整信息的加密数据,微信也提供了部分解密...
  • 最近学习如何请求后端接口,本来想请求项目中正在用的接口,可是无缘,微信小程序不允许。官方给出的提示是,接口必须有域名且备案,我就无语了,我们的接口都是ip地址,所以我只能呵呵了。不过,也没太大关系,重点...
  • https://github.com/ZTCooper/weixin_demo 相关配置 # 配置必须参数 APPID = "" # 小程序ID SECRET = "... # 统一下单后微信回调地址,api demo见notify_view_demo.py # 证书路径 '...
  • 四 Java 实现微信支付 — 后端篇 技术栈 Spring boot java XML (微信在http协议中数据传输方案) MD5 签名 微信支付术语 openid (OpenID是公众号一对一对应用户身份的标识) app_id (公众号id,登录微信...
  • 现在到app支付,不得不说微信官网的demo水的像一坨(河蟹)根本不知道从哪里入手,最后总结几点,不多说上代码。public String Pay(Map map){ //参数组 String appid = PaymaxConfig.WX_APPID; String mch_...
  • 微信分享--后端工作

    2019-04-12 17:41:06
    需要在微信公众号进行如下设置 1、JS安全域名设置(不需要加 HTTP:// ) 2、IP 白名单(服务器的 IP 地址即可)
  • 现在微信小程序越来越火了,相信不少人都通过各种途径学习过微信小程序或者尝试开发,作者就是曾经由于兴趣了解开发微信小程序,最终自己的毕业设计也是开发一个微信小程序。所以现在用这篇博客记录我之前开发的...
  • 微信小游戏属于h5小游戏,本来h5小游戏是没有相关的规则比较自由。因为有了微信的登录验证之后加了少许规则进来。这样后台也会有所变化。 ... 这里有官方示例的前后登录验证流程;...梳理一下你在后端要多两件事,第一...
  • ·微信公众号后端开发文档: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842 ·开始一些必须设置解读: 登陆公众号后台,进行开发者设置===》https://mp.weixin.qq.com/ 1.网页授权...
  • 微信开发的准备工作完成后就可以开始开发,废话不多说,直接贴代码 一,前端实现 前端的实现微信开放平台已经给出了实现步骤,我们只需要按照其给出的步骤实现就行,微信公众平台 二,后端 ①,Controller层...
  • 一、准备 接入步骤: 接口文档地址:
1 2 3 4 5 ... 20
收藏数 20,729
精华内容 8,291
关键字:

微信开发使用后端接口