真正的无知不是缺乏知识,而是拒绝获取知识!3354波普尔哲学家和思想家)
鉴于微信支付文档的详细内容,很容易失去耐心。我们特此组织它。
目录
第一部分预储备
1.1注册前概述
1.2注册所需材料
第二部分获得了商家号
2.1获取商户号
2.2支付类型
2.2.1.用信用卡支付
2.2.2.微信官方账号支付
2.2.3.扫码支付
2.2.4.APP支付
2.3注意商家规则
2.3.1协议规则
安全规范
2.3.3证书相关内容
2.4业务流程图
第一部分预储备
1.1注册前概述
它们之间的差异及相关问题综述。
因为本文重点关注支付环节,从上图可以知道我们可以选择认证FW号或者认证QY号。
1.2注册所需材料
以下信息可从企鹅文档:获得
具体不同类型的注册,请到腾讯文档下方选择具体类型。您可以进入WX客服- WX支付商户教程
第二部分获得了商家号
2.1获取商户号
审核通过后,获得的信息如下:
2.2支付类型
WX支付有四大基本支付功能,分别是信用卡支付、扫码支付、微信官方账户支付和APP支付。还提供企业红包、代金券、折扣等新的营销工具,满足用户和商家不同的支付场景。
2.2.1.用信用卡支付
场景:比如超市付款,工作人员扫描我们的微信支付码。
第一步:用户选择信用卡支付,打开微信进入“我”-“钱包”-“信用卡”条码界面;
步骤2,收银员在商户系统中操作生成支付指令,用户确认支付金额;
第三步,商户收银员用扫码器扫描用户的条码/二维码,商户收银系统提交支付;
第四步:微信支付后台系统收到支付请求后,根据密码验证规则判断是否验证用户的支付密码。不需要验证密码的交易直接发起扣款,需要验证密码的交易会弹出密码输入框。支付成功后,微信上会弹出成功页面,支付失败会弹出错误提示。
信用卡支付凭证
2.2.2.GZH付款
一图胜于雄辩,下图是使用场景。
以下是支付场景的交互细节。请仔细阅读并设计商家页面的逻辑:
1)用户打开商家网页购买商品并发起支付,通过网页上的JavaScript调用getBrandWCPayRequest界面发起微信支付请求,用户进入支付流程。
2)用户支付成功点击完成按钮后,商家前端会收到JavaScript的返回值。商家可以直接跳转到支付成功的静态页面进行展示。
3)商户后台收到微信开放平台的支付成功回拨通知,表示本次订单支付成功。
微信官方账户支付单据
2.2.3.扫码支付
场景:我们主动扫描商家贴在墙上的二维码【一般固定金额】
用户扫描商家在各种场景下显示的二维码进行支付。
第一步:商家根据微信支付的规则,为不同的产品生成不同的二维码,并在各种场景下展示,供用户扫描购买。
第二步:用户用微信“扫”扫二维码后,获取商品的支付信息,引导用户完成支付。
扫描代码付款文件
2.2.4.APP支付
适合商家在手机APP中集成微信支付功能。
互动详情如下:
第一步:用户进入商家APP,选择商品下单,确认购买,进入支付环节。商家后台生成支付订单,签字后将数据传输到APP。以微信提供的DEMO为例。
第二步:点击后,用户发起支付操作,进入微信界面,调出微信支付,出现确认支付界面。
第三步:用户确认收款人和金额,点击“立即支付”后,出现密码输入界面,您可以选择支付
文档
2.3 商户支付注意规则
2.3.1 协议规则
商户接入微信支付,调用API必须遵循以下规则
2.3.2 安全规范
安全规范主要在于微信交互过程中需要注意的事项
签名算法——(签名校验工具)
步骤:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行` MD5运算` ,再将得到的字符串所有字符转换为`大写`,得到sign值signValue。
key设置路径:微信商户平台pay.weixin.qq.com)–>账户设置–>API安全–>密钥设置
例子:
1. 假设传送的参数如下:
———————–
appid: wxd930ea5d5a258f4f
mch_id: 10000100
device_info: 1000
body: test
nonce_str: ibuaiVcKdpRxkhJA
———————–
2. 对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
———————–
stringA=”appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA”;
———————–
3. 第二步:拼接API密钥:
———————–
stringSignTemp=stringA+”&key=192006250b4c09247ec02edce69f6a2d”
sign=MD5stringSignTemp).toUpperCase)=”9A0A8659F005D6984697E2CA0A9CF3B7″
———————–
4. 最终结果
=======================<xml><appid>wxd930ea5d5a258f4f</appid><mch_id>10000100</mch_id><device_info>1000<device_info><body>test</body><nonce_str>ibuaiVcKdpRxkhJA</nonce_str><sign>9A0A8659F005D6984697E2CA0A9CF3B7</sign></xml>=======================
注意事项:
◆ 参数名ASCII码从小到大排序(字典序);
◆ 如果参数的值为空不参与签名;
◆ 参数名区分大小写;
◆ 验证调用返回或微信主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
◆ 微信接口可能增加字段,验证签名时必须支持增加的扩展字段
2.3.3 证书相关内容
当涉及资金回滚时,需要用到证书,比如退款、撤销接口, 证书一共包含四个pkcs12格式, CA证书(rootca.pem), 证书pem格式(apiclient_cert.pem), 证书密钥pem格式(apiclient_key.pem)) 其中◆ apiclient_cert.p12是商户证书文件,除PHP外的开发均使用此证书文件。
我们关注的主要是apiclient_cert.p12是商户证书文件,路径下载:
微信商户平台pay.weixin.qq.com)–>账户中心–>账户设置–>API安全–>证书下载 。
2.4 业务流程图
四种支付,四种不同的流程图,所以psdfk下来吧
刷卡支付流程图
GZH支付流程图
扫码支付流程图一 || 模式二
APP流程图
更多精彩内容请关注“IT实战联盟”哦~~~