sig create 微信公众号 邮件 secret == 测试 github 上获取
特别注意 ----JSAPI 只能在微信环境下 测试!2017-04-19
配置:微信公众号中 添加微信支付配置 -- 请认真填写配置并获取下面对应的数据才能正常运行。
- =======================【基本信息设置】====================
- /* 微信公众号信息配置
- * APPID:绑定支付的APPID(必须配置)
- * MCHID:商户号(必须配置)
- * KEY:商户支付密钥,参考开户邮件设置(必须配置)
- * APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置)
- */
- public const stringAPPID = AuthConnect.WeChat_AppId;
- public const stringMCHID ="0000000";
- public const stringKEY = AuthConnect.WeChat_AppPayKey;
- public const stringAPPSECRET = AuthConnect.WeChat_AppKey;
1、首先引用 API 基类:OrderDetail.cs、TenpayUtil.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) {
- varresult = 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 支付
来源: http://www.bubuko.com/infodetail-2031908.html