网页版微信支付。
1、填写配置,包括开通微信支付,appid和key,配置支付目录,目录路径要文件所在目录,配置授权目录路径。
2、拿到每次访问的code,通过code生成openid和accesstoken,每个code只可以使用一次,测试时候注意使用。授权方式选择base,不需要拿到对方的头像名称等信息。这样不需要用户点击确认就可以进入下一个界面。
3、进行支付签名,签名要注意大小写,特别是时间戳要string类型,key的类型也要注意,比如开发文档里面有appid和appId,注意看清,被坑。ip地址为用户的IP地址。
4、通过appid和随机字符串、签名、签名方式为md5,签名成功,在微信浏览器可以调起微信内部方法wxpayrequest实现支付功能。失败可以alert回调信息,先确认自己错了哪里,哪里需要再仔细一遍。
5、收货地址。收货地址在微信个人信息里的“我的地址”,通过accesstoken和url还有时间戳随机字符串等参数一起签名生成addrsign,注意,url为带上code和state参数的URL,否则无法签名成功,而且所以参加签名的参数都必须小些,这跟支付签名很大不同,要注意。更要注意的一点,支付的url要和收货地址的url要一致。通过微信浏览器调起editaddress方法进入到微信的“我的地址”里面,用户可以选择或者编辑地址,确认完成跳回支付界面,这时候aditaddress方法有参数返回,拼接参数就是完整的收货地址。
6、根据需求,需要收货地址还是不需要收货地址,先确定收货地址方法有返回值而且不为空再调起支付方法。
7、通过设计个人风格的商品界面,将用户选购的商品价格数量等参数一一传给后台服务器保存。
个人开发结论,他奶奶的,一堆堆坑,坑死劳资了,前前后后花了我五天时间才搞懂这破玩意,主要是因为自己掉坑太多,挣扎好久都没有头绪,还一直看着代码问自己我哪里错了,我哪里错了…比如调起微信支付方法的签名参数时间戳,因为做过微信分享,分享用的是int类型,他奶奶的一转眼就是字符串,眼瞎!比如收货地址的addsign,url是签名参数但是一直签名不对,奶奶的,我又找开发文档,找了半天里面写着“签名url连code和state也要带着一起签。
总而言之,坑很多,开发之前一定要好好看开发文档和开放常遇到的问题,少一点坑,让老板多一份满意。