微信公众号内支付(.Net版本)开发详尽流程分享
首先跑起.net版本的Demo,然后再根据自身项目要求整改。
1.登录你的微信公众平台(注意微信有好多平台)https://mp.weixin.qq.com/
一些其他服务号等认证我就不说了:微信支付权限需要申请,3-5个工作日,我是2天(这个工作提前做)。
2.注意在平台上逛逛,拾获些物品,以后要用(AppID,AppSecret,商户号(这个注意要去商户平台注册,完了这个公众号平台中也会显示),商户证书(这个流程较多先不管))
左边菜单栏最下面:
提前填个坑:
左边菜单栏最下面的:接口权限点进去,找到“网页授权获取用户基本信息”点击修改 这里填的域名一般是你的公众号开发中网站H5页面的域名,不要加http://这些,不要跟公众号设置菜单中的业务域名搞混。域名必须完全匹配,设置顶级域名sky87.com,程序是pay.sky87.com的二级域名都不行;
关于获取商户号 要先在商户平台注册啥的。
关于获取商户证书:http://www.cgtblog.com/wx/540.html
3.下载Demo(这玩意也藏得很深)
4.打开这个开发步骤看看(了解流程),把demo发布了运行起来:
设置支付授权录:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3
了解业务流程(这个时序图很清楚):
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_4
5.重点对照时序图将Demo的code流程读懂。
Demo中需要修改的地方:
1.lib文件夹下的config文件先改。前面拾获的东西用用。(注释很明白)
2.我只用了公众号内页面支付,所以只用这几个页面:
example/ProductPage.aspx 商品展示
JsApiPayPage.aspx 支付流程页
example/ResultNotifyPage.aspx 支付结果回调页面
这其中有一些简单坑流程走下来一下就能发现我就简略了,给篇文章:
http://www.360doc.com/content/15/0717/08/10504424_485420712.shtml
总结很全面,不画蛇添足了。
6.Log调试,可以自己写个log调试类这样很清楚看清流程和ex异常信息。(给个吧,一点代码没有不好)
public class LogHelper
{
public static void logstrRes(string content)
{
try
{
string logstr = "\t\t--------------------------------------\r\n时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "\r\n";
logstr += "内容:\r\n" + content + "\r\n\t\t--------------------------------------\r\n";
var sw = new System.IO.StreamWriter(System.Web.HttpContext.Current.Server.MapPath("/log/log.txt"), true);
sw.BaseStream.Seek(0, System.IO.SeekOrigin.End);
sw.WriteLine(logstr);
sw.Flush();
sw.Close();
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}
调用:
LogHelper.logstrRes("openid " + openid + " total_fee " + total_fee);