WeChat-JSAPI支付
官方API:打开连接
特别注意----JSAPI只能在微信环境下 测试!2017-04-19
配置:微信公众号中 添加微信支付配置--请认真填写配置并获取下面对应的数据才能正常运行。
=======================【基本信息设置】====================
/* 微信公众号信息配置
* APPID:绑定支付的APPID(必须配置)
* MCHID:商户号(必须配置)
* KEY:商户支付密钥,参考开户邮件设置(必须配置)
* APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置)
*/
public const string APPID = AuthConnect.WeChat_AppId;
public const string MCHID = "";
public const string KEY = AuthConnect.WeChat_AppPayKey;
public const string APPSECRET = AuthConnect.WeChat_AppKey;
1、首先引用API基类:OrderDetail.cs、TenpayUtil.cs、QueryOrder.cs、UnifiedOrder.cs---可以到我的github上获取 下载
2、C# 服务端代码---获取JSAPI需要的各个参数,并返回给前端
UnifiedOrder order = new UnifiedOrder();
order.appid = AppId;
order.mch_id = partnerId;
order.nonce_str = TenpayUtil.getNoncestr();
order.body = body;
order.out_trade_no = orderNumber;
order.total_fee = Price;
order.spbill_create_ip = Page.Request.UserHostAddress;
order.notify_url = "Notify.aspx";
order.trade_type = "JSAPI";
if (ViewState["OpenID"] != null)
{
order.openid = ViewState["OpenID"].ToString(); //JSAPI必须传入openid
}
TenpayUtil tu = new TenpayUtil();
PrepayId = tu.getPrepay_id(order, key);
string package = "prepay_id=" + PrepayId;
NonceStr = order.nonce_str;
TimeStamp = TenpayUtil.getTimestamp(); SortedDictionary<string, string> sParams = new SortedDictionary<string, string>();
sParams.Add("appId", AppId);
sParams.Add("nonceStr", NonceStr);
sParams.Add("package", package);
sParams.Add("signType", "MD5");
sParams.Add("timeStamp", TimeStamp);
Sign = tu.getsign(sParams, key);
Json = "{\"code\":\"1\",\"data\":{\"appId\":\"" + AppId + "\",\"nonceStr\":\"" + NonceStr + "\",\"package\":\"" + package + "\",\"timeStamp\":\"" + TimeStamp + "\",\"signType\":\"MD5\",\"paySign\":\"" + Sign + "\"}}";
3、前端JS---:接收后台传过来的参数,如果正确无误就可以在微信中调起支付功能。
$.post("/Pay/PayApi.aspx", ret, function (result) {
var result = JSON.parse(result); //后台获取到的参数
if (result.code == 1) {
WeixinJSBridge.invoke('getBrandWCPayRequest', result.data,
function (res) {
// 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。
switch (res.errMsg) {
case "get_brand_wcpay_request:ok":
alert("支付成功");
break;
case "get_brand_wcpay_request:cancel":
alert("支付取消");
break;
default:
alert("支付失败");
break;
}
}
);
}
}
大功告成! 祝君好运~
WeChat-JSAPI支付的更多相关文章
- 微信JSApi支付~订单号和微信交易号
返回目录 谈谈transactionId和out_trade_no 前一篇微信JSApi支付~坑和如何填坑文章反映不错,所以又写了个后篇,呵呵. 每个第三方在线支付系统中都会有至少两类订单号,其一为支 ...
- 微信JSAPI支付
最近在微信H5页面内集成微信JSAPI支付,遇到不少问题,现将集成步骤及遇到的问题记录如下: 1.官方下载SDK,下载地址:https://pay.weixin.qq.com/wiki/doc/api ...
- 微信JSApi支付~集成到MVC环境后的最后一个坑(网上没有这种解决方案)
返回目录 大叔第一人 之前写了关于微信的坑<微信JSApi支付~坑和如何填坑>,今天将微信的jsapi支付封装到了MVC环境里,当然也出现了一些新的坑,如支付参数应该是Json对象而不是J ...
- 微信JSApi支付~坑和如何填坑
返回目录 微信一直用着不爽,这几天研究它的jsapi支付,即在微信内打开H5页面,完成支付的过程,在这个过程中,你将会遇到各种各样的问题,而大叔将把这些问题的解决方法写一下,希望可以给你带来帮助! 一 ...
- asp.net微信jsapi支付
1.前台页面: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head ru ...
- 微信支付系列(2)——jsapi支付源码解析
版权声明:转载请注明出处:http://blog.csdn.net/m0sh1 http://www.share345.com 在微信支付 开发者文档页面 下载最新的 PHP SDK http://m ...
- 微信JSAPI支付(比较详细) 关于getRrandWCPayRequest:fail_invalid appid 错误
原文:微信JSAPI支付(比较详细) 关于getRrandWCPayRequest:fail_invalid appid 错误 首先微信支付需注册 微信公从平台开发 和 微信支付商户平台 关于4个密 ...
- 微信JSAPI支付 跟 所遇到的那些坑
首先介绍一下我在调用微信支付接口使用的是 weixin.senparc SDK,非常方便好用开源的一个微信开发SDK. weixin.senparc SDK 官网:http://weixin.senp ...
- 微信JSAPI支付回调
在微信支付中,当用户支付成功后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答. 在经历了千幸万苦之,填完了所有的JSAPI支付的坑后(微信JSAPI支付 跟 所遇到的那些坑) ...
- 微信公众号JSAPI支付-多公众号向同一商户号支付的问题解决
一.背景 项目提供公众号商城集成,在公众号里进行商品的购买,并与多家公众号合作增加渠道流量. . 二.实现 有关微信公众号.商户号的开通与支付绑定不细说 从背景里可知,我们需要实现多个公众号购买向同一 ...
随机推荐
- 2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016) B - Bribing Eve
地址:http://codeforces.com/gym/101174/attachments 题目:pdf,略 思路: 把每个人的(x1,x2)抽象成点(xi,yi). 当1号比i号排名高时有==& ...
- LightOJ - 1074 Extended Traffic (SPFA+负环)
题意:N个点,分别有属于自己的N个busyness(简称b),两点间若有边,则边权为(ub-vb)^3.Q个查询,问从点1到该点的距离为多少. 分析:既然是差的三次方,那么可能有负边权的存在,自然有可 ...
- 零基础学习openstack【完整中级篇】及openstack资源汇总
1.你是如何学习openstack的?2.你对openstack的组件了解多少?3.你认为openstack该如何学习? 一直想写关于openstack的方面的内容,今天终于整理完成.算是完成一桩心事 ...
- googleMapReduce
摘要 MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现.用户首先创建一个Map函数处理一个基于key/value pair的数据集合,输出中间的基于key/value ...
- jstack用法
第一步先找出Java进程ID,我部署在服务器上的Java应用名称为mrf-center: root@ubuntu:/# ps -ef | grep mrf-center | grep -v grep ...
- 如何做好Web接口测试
说说我在测试接口时遇到的一些需要注意的点: 1.接口返回:数据格式是否与预期一致.例如:要求返回json格式的数据,json数据的key命名是否正确,对应的value是否与数据库一致.需要转换的数据是 ...
- APP接口版本不兼容怎么办? 教你一招
现在基本每个公司都做APP,所以大家都面临 APP接口版本兼容的问题. iOS和android 要不断开发新版本,很多服务端开发都是在以前接口的逻辑上进行修改.新的APP和接口开发后,接口如何兼容老的 ...
- HTTP-java访问https资源时,忽略证书信任问题,代码栗子
java程序在访问https资源时,出现报错 sun.security.validator.ValidatorException: PKIX path building failed: sun.sec ...
- springboot访问jsp页面
1.新建springboot项目,选择以war包的方式package; image 2.勾选Web模块,DevTools可不选(用作热部署,不影响运行) image 3.创建完成后,项目结构如 ...
- RN中有两种方式使用全局变量
1.通过导入导出文件的方式 新建constants.js文件 const object = { website:'http://www.hao123.com', name:'好123', }; exp ...