angularjs 微信授权登录 微信支付
最近做一个项目,用angular 一个单页应用,打算打包成 跨平台移动App 以及在微信里面使用。给大家一个案例
首先,熟悉一下微信授权部分的源代码,如下所示:
javascript 前端代码;
var app = angular.module("myApp", []);
app.controller('myCtrl', ['$scope', '$location', '$http', function($scope, $location, $http) {
//调取获取ping++支付凭证接口
$scope.userid = userid;
$scope.orderNum = $location.search().orderNum;
$scope.orderId = $location.search().orderId;
$scope.openid = $location.search().openid;
//订单详情
$scope.url = url + '';
$http({
method: 'GET',
url: $scope.url,
params: {
'userid': userid,
'orderId': $scope.orderId,
'orderNum': $scope.orderNum
}
}).success(function(result) {
if(result.status == 200) {
$scope.orderInfo = result.data.orderInfo;
}
});
$scope.slectPayType = function(paymentType, orderId, orderNum, userid) {
$scope.url = url + '';
window.location.href = $scope.url + "?orderId=" + orderId + "&orderNum=" + orderNum + "&userid=" + userid;
}
console.log($scope.userid)
console.log($scope.orderNum)
console.log($scope.orderId)
console.log($scope.openid)
if($scope.openid != undefined || $scope.openid) {
$scope.paytype = 'wx_pub';
$scope.url = url + '';
$http({
method: 'GET',
url: $scope.url,
params: {
'userid': userid,
'orderNum': $scope.orderNum,
'orderid': $scope.orderId,
'openid': $scope.openid,
'channel': $scope.paytype
}
}).success(function(result) {
if(result.status == 200) {
$scope.charge = result.data;
pingpp.createPayment($scope.charge, function(result, error) {
if(result == "success") {
showMsg("支付成功");
// 只有微信公众账号 wx_pub 支付成功的结果会在这里返回,其他的支付结果都会跳转到 extra 中对应的 URL。
} else if(result == "fail") {
showMsg("支付失败");
// charge 不正确或者微信公众账号支付失败时会在此处返回
} else if(result == "cancel") {
// 微信公众账号支付取消支付
showMsg("已取消支付");
}
});
}
});
}
}]);
页面部分;
<li ng-click="slectPayType('wx_pub',orderInfo.id, orderInfo.orderid,userid)"><i class="weixin"></i><span>微信</span></li>
<li ng-click="slectPayType('alipay_wap', orderInfo.id, orderInfo.orderid,userid)"><i class="alipay"></i><span>支付宝</span></li>
我在做微信支付的过程中出现了一个比较麻烦的问题,耗费了我半天的时间才解决的,就是在支付过程中回调通知地址的URL不规则,导致虽然支付成功了,但获取不到订单信息以及对订单信息的处理。微信支付要求回调通知URL必须不能带参数,如:“https://你的域名/index.php/home/WxJsAPI/notify/”。因为我用的是Thinkphp的路由模式3,此路由带了参数,如:“https://你的域名/index.php?s=/home”。(凡是URL里带有“?”的,都算是带了参数)
当然,如果你是第一次做,肯定会遇到各种问题,如果你是新手,遇到的问题都不知道为什么,即使你做过了再做我相信还是可能由于细节上的疏忽会出现问题的,不过不要烦躁,耐心的去发现问题,耐心的去调试,最后一定可以解决的。
angularjs 微信授权登录 微信支付的更多相关文章
- 微信授权登录-微信公众号和PC端网站
https://blog.csdn.net/qq_34664239/article/details/79107529 一.微信公众号授权登录——微信公众平台 微信授权登录,并调用后台接口,获取用户信息 ...
- [转] Android:微信授权登录与微信分享全解析
https://wohugb.gitbooks.io/wechat/content/qrconnent/refresh_token.html http://blog.csdn.net/xiong_it ...
- 微信公众平台开发——微信授权登录(OAuth2.0)
1.OAuth2.0简介 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. 允许用户 ...
- 微信授权登录(PHP)
微信授权登录(PHP) 微信授权 OAuth2.0授权 微信网页授权 主要是在项目中遇到网页授权登录这个需求,就对此做些总结记录. OAuth2.0授权 OAuth是一个开放协议,允许用户让第三方应用 ...
- 【第二十一篇】手C# MVC 微信授权登录 OAuth2.0授权登录
首先一定要熟读,最起码过一遍微信开发者文档 微信开发者文档 文档写的很清楚 授权登录四步走 在正文开始前,我得讲清楚一个事情 敲黑板,划重点:微信一共有两个 access_token 一个是7200就 ...
- .net core identity集成微信授权登录
最快的方式是直接nuget安装AspNetCore.Authentication.WeChat包. 想要知道是如何实现的,可以看下面github上面的源码. 源码在这里:https://github. ...
- 微信授权登录mock(在没有真实微信账号的情况下测试大量微信账户授权登录的情况)
场景介绍 对于构建在微信公众号的系统,帐号体系往往使用微信授权登录(如各类微信商城应用系统). 这样操作不仅可以实现静默注册,对用户几乎是无感的,同时也达到了区分用户,获取用户基本信息(头像,昵称等) ...
- wap2app(五)-- 微信授权登录以及踩过的坑
应用场景是:用Hbuilder打包app,在app中点击微信授权登录或者某一操作,调起微信授权登录,用户授权后拿到用户信息. 一.登录插件配置 先配置微信登录参数 appid和appsecret,在m ...
- VUE开发SPA之微信授权登录
SPA单页应用中微信授权登录的一点思路 单页应用应该如何解决微信授权登录的尴尬跳转?后退无法返回?主要遇到的问题就是 先进入单页应用,一边渲染页面一边判断用户有没有登录,当判断到没有登录时异步数据请求 ...
随机推荐
- 分享一个JQuery弹出层插件
JQuery插件TipsWindown 1.1 一个基于jQuery的弹出层.支持拖拽,支持内容为文字,图片,URL等!至于兼容性.在IE6下,弹出对像无法绝对固定.其他应该没啥大问题: 最新更新:( ...
- Json对象转为实体对象
Json对象转为实体对象 1.Bean中申明 trainTypeList: public class TrainTypeQueryParam implements Serializable { pri ...
- Codeforces Round #307 (Div. 2) D 矩阵快速幂+快速幂
D. GukiZ and Binary Operations time limit per test 1 second memory limit per test 256 megabytes inpu ...
- [codeforces/edu30]总结(E)
链接:http://codeforces.com/contest/873/ A题: 贪心,把最大的k个数变成x即可. B题: 从左向右枚举右端点,维护balance的最长长度.任意一个子串可以看做两个 ...
- UVA 580 Critical Mass
https://vjudge.net/problem/UVA-580 题意:一堆U和L,用n个排成一排,问至少有3个U放在一起的方案数 f[i] 表示 至少有3个U放在一起的方案数 g[i] 表示没有 ...
- LightOJ 1023 Discovering Permutations 水题
http://www.lightoj.com/volume_showproblem.php?problem=1023 题意:26字母全排列 思路:用next_permutation或者思维想一下都可以 ...
- (转)Linux下使Shell 命令脱离终端在后台运行
转自: http://www.linuxidc.com/Linux/2011-05/35723.htm 方法如下: (1)输入命令: nohup 你的shell命令 & (2)回车,使终端回到 ...
- MySQL和Postgresql的区别
一.PostgreSQL相对于MySQL的优势 1.在SQL的标准实现上要比MySQL完善,而且功能实现比较严谨:2.存储过程的功能支持要比MySQL好,具备本地缓存执行计划的能力:3.对表连接支持较 ...
- 【LibreOJ】#541. 「LibreOJ NOIP Round #1」七曜圣贤
[题意]一开始车上有编号为0~a的红茶,过程中出现的红茶编号仅有[0,b),有三种操作: 1.买进编号未在车上出现过的红茶. 2.丢掉车上指定编号的红茶. 3.将最早丢出去的红茶捡回来. 每次操作后求 ...
- Windows Server 2008 R2英文版修改桌面主题(Win7主题)
1:首先打开Server Manager(凡是不知道在那里开发均可像Win7一样在运行里面搜索) 2:然后在左边的树形菜单中选择:Feature 点击右边页面中的:Add Features 这时候会出 ...