美文网首页
读iOS微信支付文档

读iOS微信支付文档

作者: 50ffea394677 | 来源:发表于2018-01-22 23:03 被阅读33次

    1.支付申请流程

    1.1 创建APP

    前往开放平台注册成为微信开放平台开发者,完成微信认证和创建APP并通过审核

    1.2 申请微信支付商户号

    提交资料申请微信支付,待资料审核通过后,前往商户平台完成账户验证

    1.3 在线签署协议

    在线完成协议签署,即开启资金结算功能,启动设计和开发

    2.支付账户

    APPID:是微信开放平台APP唯一的标识,用于标识该应用。

    微信支付商户号:商户申请微信支付后,由微信支付分配的商户收款账号

    API密钥:交易过程生成签名的密钥,仅保留在商户系统和微信支付后台,不会在网络中传播。

    Appsecret:APPID对应的接口密码,用于获取接口调用凭证access_token时使用。

    3.接口规则

    3.1 协议规则

    传输方式:为保证交易安全性,采取HTTPS协议

    提交方式:POST

    数据格式:XML

    字符编码:UTF-8

    签名算法:MD5,后续会兼容SHA1、SHA256、HMAC等。

    签名要求:请求和接收数据均需要校验签名

    证书要求:调用申请退款,撤销订单接口需要商户证书

    判断逻辑:先判断协议字段返回,再判断业务返回,最后判断交易状态

    3.2 参数规定

    body字段

    交易金额

    交易类型

    货币类型

    时间

    时间戳

    商户订单号

    银行类型

    3.3 签名算法

    3.3.1 签名生成的通用步骤

    3.3.1.1 

    将所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

    ◆ 参数名ASCII码从小到大排序(字典序); 

    ◆ 如果参数的值为空不参与签名; 

    ◆ 参数名区分大小写; 

    ◆ 验证调用返回或微信主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。 

    ◆ 微信接口可能增加字段,验证签名时必须支持增加的扩展字段

    3.3.1.2

    在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。

    3.3.2 生成随机数算法

    微信支付API接口协议中包含字段nonce_str,主要保证签名不可预测。我们推荐生成随机数算法如下:调用随机数函数生成,将得到的值转换为字符串。

    3.3.3 商户证书

    3.3.4 商户回调API安全

    在普通的网络环境下,HTTP请求存在DNS劫持、运营商插入广告、数据被窃取,正常数据被修改等安全风险。商户回调接口使用HTTPS协议可以保证数据传输的安全性。所以微信支付建议商户提供给微信支付的各种回调采用HTTPS协议

    4 业务流程

    商户系统和微信支付系统主要交互说明:

    步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。

    步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。

    步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式为Sign=WXPay

    步骤4:商户APP调起微信支付。

    步骤5:商户后台接收支付通知。

    步骤6:商户后台查询支付结果。

    相关文章

      网友评论

          本文标题:读iOS微信支付文档

          本文链接:https://www.haomeiwen.com/subject/cliraxtx.html