Eric.Liang 发表于 2020-4-26 15:16:29

帮你打开活字格更神奇的功能:八十二,活字格对接微信支付

本帖最后由 Lay.Li 于 2022-7-22 16:14 编辑

申请微信支付流程介绍      只要是通过认证的微信公众号(无论是服务号还是订阅号),即可申请微信支付。1)   开始2)   第一阶段(申请公众号,申请微信认证,审核服务费300元。认证审核市场大概7个工作日左右)3)   第二阶段(申请开户,提交资料申请微信支付,开户成功后登陆商户平台验证。约1-5个工作日)4)   第三阶段(签署协议,开发;在线签署协议,开发,成功接入微信支付)5)   上线申请开户进入公众号后台,单击左侧菜单的“微信支付按钮”,进入微信支付页面,还没有开通微信支付的页面会显示【开通】按钮。注意:如果当前公众号还没有通过认证,【开通】按钮将无法单击。

开通之后会跳转微信支付商户平台页面。
注意:如果是通过公众平台点击微信支付开通的没有什么特殊的,如果是单独申请的微信公众平台和微信支付商品平台,请在微信支付中去关联微信公众号。详细的可以阅读这里:https://pay.weixin.qq.com/static/pay_setting/appid_protocol.shtml
微信支付申请成功后,请在“账户中心”-“API安全”下设置API证书和API密钥(证书用于退款的验证,密钥在付款和退款是均需要使用)
1.申请API证书。注意:证书申请后请妥善保管,需要将生成的证书放置到你的活字格服务管理所在的机器上。且证书每年只能更换3次。
证书需要依靠微信支付商户平台证书工具去生成
证书生成后,将证书放到活字格的服务器上,我们用到的是apiclient_cert.p12(位置可以自定义,这个路径后续在活字格中实现微信退款的使用)证书的安装方式请看证书使用说明。2.申请API密钥(注意:API密钥和APIv3密钥,密钥请妥善保管,后续微信支付需要使用)3.支付配置(添加JSAPI支付授权目录,该目录为活字格的应用链接。例如:http://www.huozige.cn/wechatpay/)
4.获取对应的商户号(后续微信支付需要使用)
至此,微信支付商户平台配置完成。微信公众号配置
添加微信公众号业务域名,JS接口安全域名,页面授权域名(微信公众号页面点击左侧菜单->设置->公众号设置->功能设置)
获取微信公众号开发者ID(APPID)和开发者密码(AppSecret),添加IP白名单(微信公众号页面点击左侧菜单->开发->基本配置)
以上,是微信公众号和微信支付商户平台的配置项。对后续需要使用到的参数,总结如下
参数 备注
appId 公众账号ID,第三方用户唯一凭证appid
cert 证书路径【退款使用】
key 商户支付密钥Key。登录微信商户后台,进入【账户设置】-【密码安全】-【API 安全】-【API 密钥】
mch_id 商户ID/默认certpassword
spbillCreateIP 活字格服务器的公网ip
appSecret 第三方用户唯一凭证密钥,即appsecret【获取Openid】
returl getAPI接口地址【获取Openid】
baseurl 首页地址【获取Openid】


使用微信支付服务端命令插件完成支付和退款功能
插件下载地址:微信支付
模板工程文件下载:

关于微信支付的流程,大家可以看下这里:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_4
我们这里实现的是JSAPI微信支付,微信浏览器访问活字格应用,在移动端实现微信支付。
首先,微信支付需要使用我们的微信公众号的第三方安全提供程序来获取微信用户的openid,才能实现支付申请。
关于微信公众号集成,大家可以看下这里:https://help.grapecity.com.cn/pages/viewpage.action?pageId=46171492

准备工作完成后,开始我们的工程文件的开发
1.开始工程文件的搭建,以下的数据结构建议大家这样来做
订单表(包含微信支付的基础字段,商户订单号,微信支付订单号,付款用户,是否付款,是否退款,微信退款单号,退款时间等等)

订单查询表(微信支付成功,查询一次添加一条查询记录)。关于字段描述可以看这里:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2

退款查询表(退款成功后,查询一次添加一次退款记录)。关于字段描述可以看这里:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_5
注意:退款功能暂时不支持多次退款


其他的数据库字段没有什么特别,可以参考工程文件

2.功能逻辑实现,针对购物车添加商品的功能这里不做赘述,主子表添加订单数据即可。直接针对微信支付功能进行讲解。微信支付
1)点击微信支付

2)当返回值为0,并且状态等于SUCCESS时,跳转支付成功页面

   3)调用服务端命令“微信支付命令”,在微信支付命令中调用“微信统一下单”。每个参数后都有一个问号,可以鼠标悬浮上去查看参数概念

4)统一下单完成后,执行“支付回调”命令
   
5)在支付回调中,校验微信返回的金额和订单详情中的总金额是否一致,如果一致,更新数据库,付款成功,否则提示付款失败。


订单查询
订单查询相比较支付,简单一些。使用组合框,选择对应的订单,查询该订单的信息
查询的参数是订单的ID



微信退款
选择订单ID,调用退款服务端命令



退款查询退款查询与订单的查询逻辑类似,不做过多的赘述



至此,所有的微信支付的逻辑就都完成了~~~

实际的支付和退款效果请看这里:

https://videos.grapecity.com.cn/HuoZiGe/Online/%E6%B4%BB%E5%AD%97%E6%A0%BC%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98_batch.mp4

微信支付工程文件模板下载:

Erik.Xue 发表于 2021-1-5 12:10:10

注意:
如果直接使用附件中提供的模板工程的话,如果遇到报错:PublicKeyToken=null,请看此贴:

微信支付,报错:PublicKeyToken=null,怎么解决?
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=84916&fromuid=58155
(出处: 葡萄城产品技术社区)


页: [1]
查看完整版本: 帮你打开活字格更神奇的功能:八十二,活字格对接微信支付