微信支付-JSAPI
必要条件
一台可通过公网地址访问的服务器
服务器可在阿里云或腾讯云购买。
一个具有支付接口权限的公众号
公众号自然是在 ‘微信公众平台’ 申请。具有支付权限的公众号得注册为企业级公众号(或称为服务号),并且通过了企业认证。企业认证需要机关单位或企业门店的 ‘营业执照’ 。在公司的话可使用公司营业执照。如果是个人,除了借别人的就只能自己去办一个了。(我就是自己去申请办理了 “个体工商户营业执照”。办理这个营业执照需要房屋或经营场所的产权使用证明和身份证。房屋使用证明可以是购房合同,和租赁合同,或产权证和产权所有方手写的一张授权使用证明。办理地点就在经营场所所在当地的市场监督管理局,一般一周就能办理下来。办理下来后根据规定得去当地的税务局办理税务登记手续,然后就可以去正规的刻章店刻章了,这时候你这个个体户也就是小企业可以开张了。公众号有了营业执照和公章就足以办理企业认证了。当然如果你办公场地装修好了也有人上岗办公了那么这个时候可以去银行开通一个对公账户。微信支付可用的上,没有的话也没关系微信支付也可以填写私人银行账户。另外:办理税务登记后记得每个季度去办理税务申报,可在网上办理也可直接去税务局办理。逾期没办的税务局会打电话给你,有可能会影响企业信誉)
听说前段时间微信给个人公众号也开放的支付功能,我还没去看相关文档。
一个已经通过了备案的域名
域名和服务器一样可在阿里或腾讯购买。(不过我忘了域名备案需要些什么东西了)
具有一定的前后端开发能力以及服务器搭建能力
实现步骤
首要目标
在微信的小程序或公众号内的支付场景中,除了业务上的一些交互外往往最终付款的时候我们就是通过一个按钮 “结算” 或 “付款” 来唤起支付页面。然后输入密码,成功后就跳转到支付成功的页面。事实上也是如此。通过微信开放文档得知唤起支付页面就是下面这段 js 代码
1
2
3
4
5
6
7
8
9
10
11 //文档地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#58
wx.chooseWXPay({
timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: '', // 支付签名随机串,不长于 32 位
package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: '', // 支付签名
success: function (res) {
// 支付成功后的回调函数(跳转到支付成功页面等操作)
}
});
我们的目标就是要这段代码能够完美的得到执行。
通过阅读文档发现这段 js 需要的参数package prepay_id 得通过统一下单接口才能拿到。而调用统一下单接口又有一个关键参数 openId 而这个 openId 得通过网页授权才能拿到。
网页授权的前提又必须开启公众号的开发者模式。开启开发者模式可参看本博客文章 微信公众号配置服务器