您的位置:首页 > 移动开发 > 微信开发

【.Net微信_服务号】1.微信JSSDK支付

2018-03-27 18:41 239 查看
    最近刚接触微信就接到了一个微信支付的功能,连着调了四天,晚上睡觉都在想代码,也是被折腾的不轻,感觉处处都是问题,经过自己的一些探索,在此做一些总结,以便以后遇到类似的问题能及时得到解决,我觉得微信支付最大的难点和瓶颈并不是微信支付本身,而是拿到微信支付的权限,首先微信支付所面向的开发对象不是个人,设置秘钥什么的都需要管理员授权,商户平台的登录也需要管理员扫码,公司的微信号又不会随便给个人进行开发,这样就造成了不必要的麻烦。

一、开发前的准备
1、微信平台概念理解
    以前没接触过微信开发,刚开始做微信都不知道要去哪个平台申请账户,自己对这三个平台也是一头雾水,所以在开发前要先理解微信这三个平台的含义,具体有什么作用,以及三个平台之间的关系,在这里要做微信服务号的支付功能,所以就只需要在微信公众平台和微信商户平台注册即可。

    (1)微信开放平台

    主要面对移动应用/网站应用开发者,为其提供微信登录,分享,支付等相关权限和服务,微信开放平台还提供了数据统计功能,用于开发者统计接入应用的登录,分享等数据情况。以京东APP为例,比如京东APP需要使用微信登录,分享和微信支付功能,首先注册微信开发平台-开发者账号,并按照以下流程在微信开放平台创建京东APP:审核通过后,即可获得以下的初级权限,如要获得更高如微信支付权限,需要再单独申请,具体微信支付权限申请步骤详见附件《移动应用-微信支付权限申请流程》

    (2)微信公众平台
    微信公众平台用于管理,开放微信公众号(包括订阅号,服务号,企业号),简单的说就是微信公众号的后台运营,管理系统。
后台功能(以服务号介绍)
<1>基础运营功能:公众号申请成功后即可获得群发功能,自动回复,自定义菜单,投票管理;
<2>高级功能:微信公众平台还提供了以下高级的功能来丰富公众号,以下权限需要二次开发;
<3>微信支付:提供公众号内微信支付能力,和移动应用一样也需要单独申请,流程和移动APP流程类似;
<4>管理:包括已关注用户管理,消息管理,素材管理
<5>推广:包括广告主(定向投向广告,精准推广自己的服务)和流量主(按月获取广告收入)
<6>统计:用户分析,图文分析,消息分析,接口分析(自定义菜单调用量)
(3)微信商户平台
无论是申请公众平台商户还是开放平台商户,申请成功后,都会拥有商户平台账号,可登录商户平台进行操作,商户平台主要是做微信支付用的,如果APP或者公众号需要接入支付能力,那么就需要在公众平台申请公众平台商户,或者在开放平台申请开放平台商户,申请成功后会分配商户平台账号。
2、微信支付官方开发者文档
3、官方demo下载我们用C#所以选择.net版本,不过这个官方的demo根本跑不起来
4、开发前的微信公众平台的一些配置,请务必认真检查配置













微信支付的开发配置要去微信商户平台的产品中心-->开发配置中进行设置



二、编码
    做好了这些准备工作以后,就要开始编码了,我们知道微信支付有两种:1、原生态的;2、jsapi直接调用的,我项目中用到的是第二种,首先把官方的demo下载下来。

(1)下载证书
在微信商户平台的账户中心-->API安全,设置完秘钥以后,下载证书,放到自己的项目中





(2)默认的Default.aspx中的链接竟然都是链接到http://paysdk.weixin.qq.com/example/ProductPage.aspx这个如果不注意的话,也会郁闷好久,将其改成我们自己的服务器测试地址(http://haohuish.com/ProductPage.aspx)。
(3)默认它给你开启了代理服务器,如果不知道的话也会郁闷很久,如果这边不填的话,又报错:无效的URI:此URI为空。填其他也会报相同的错误,只好找到它使用代理的地方手动注释掉。
配置文件Config.cs
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  .net 微信支付