公司项目需要用到微信支付,之前没有接触过,这里把遇到的一些问题和开发流程和大家分享一下。
1、首先需要在微信开放平台注册一个开发者账号。
2、在管理中心里面创建应用,这里的重点1是创建应用时要填一个应用签名,这个签名从何而来呢?首先要求填写签名的地方可以下载一个签名APP,安装此签名APP到手机,接下来用正式的签名工具打包现在自己的APP并安装到手机,打开签名APP输入刚才自己的APP包名,这样就生成了应用签名。
3、开发者资质认证,这一步主要是要提交企业的一些基本资料,比如:开户许可证、税务登记证、开户银行等,填完资料最后要交300元认证费,而且每年需要认证一次。
4、第二步应用审核通过了还需要开通微信支付功能,这里主要填写APP支付所经营的项目,审核通过了后会发短信和邮件,然后再根据邮件的提示设置支付密钥。
5、各种审核都通过了,接下来就是正式开发阶段,开发时可以参照微信支付的Demo,流程可以参考,但是细节不能照搬,否则会掉进坑里面去,具体说一下开发步骤。
6、首先是获取从服务器获取签名、订单号,为什么要从服务器获取签名呢?因为一般为了安全起见,我们会把支付密钥放到后台,后台再通过一些算法什么的,返回签名,这样保证了支付的安全性。
7、接下来就是下单获取prepay_id,调用微信下单接口,重点2,这里接口调用的参数要按字母升序排列;重点3,"nonce_str"这个随机参数的值要和上一步一样;重点4,"body"商品描述参数如果是中文,需要转码,如(String bodyStr = new String(chooseProductName.getBytes(), "ISO8859-1"););重点5,"spbill_create_ip"手机ip参数,这个可以自己设置成一个默认的,但如果不是设置成默认的而是要去获取手机的IP,使用4G网络的手机需要注意,它是用的IPV6,这个需要特殊处理。以上参数如果设置有误都会导致获取prepay_id失败。
8、以上都成功,最后就是调起微信支付,重点6,这里就是在设置签名参数之前,需要再次去后台服务器获取一次签名,不能使用第六步(也就是第一次获取的签名),这里主要是考虑安全的原因。
9、如果顺利的话就会进入到微信支付界面,支付完成会进入到我们设置的回调类,这个类必须放在wxapi包名下,而这个整体的包又需要放在当前APP的包名下,否则无法显示。
10、这些都是本人在开发过程中的一些总结,可能微信支付接口后续做了优化,不会出现这么多的问题。