微信支付集成之2业务逻辑分析

作者: WallisW | 来源:发表于2017-10-23 00:56 被阅读22次

    微信支付已经渗透到人们日常消费的每一个角落,作为一名移动APP(iOS)开发者,也难免在有消费功能的APP中集成微信支付。本文先大体总结一下微信支付的整体业务逻辑。

    集成微信支付官方流程指南

    账号申请注册

    这一部分一般轮不到我们小开发去操作,毕竟涉及到公司的一些机密信息。一般都是项目经理,部门总监等去做,但是作为开发者我们也要稍作了解。说不定哪天你就成Leader了……

    1.官网申请注册账号(注册地址)
    2.资格认证审核(需要申请人身份认证,公司资质信息和发票,支付费用300元/年,5个工作日内可查询认证结果)
    3.关联相关APP信息

    商户服务器业务

    业务逻辑

    服务器业务逻辑
    1。用户在商户APP中选择商品,提交订单,选择微信支付。
    2.商户后台收到用户支付单,调用微信支付统一下单接口。【统一下单API】。
    3.统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式为Sign=WXPay
    4.商户APP调起微信支付。【app端开发步骤说明
    5.商户后台接收支付通知。【支付结果通知API
    6.商户后台查询支付结果。【查询订单API

    注意事项

    1.订单号和订单签名(一次签名)需要的随机字符串采用微信提供的算法生成(微信Demo里有)。
    2.统一下单API里对参数签名必须将基本参数(除秘钥)按ASCII码排序,秘钥参数排在最后,参数值为空的不参与签名。
    3.参数请求时必须是xml格式(也不知道在json大肆横行的年代,微信支付为啥还在用着xml)。
    4.xml格式的请求参数也是有序的,基本参数ASCII码排序,秘钥参数排在最后
    5.必须是return_code和result_code同时返回SUCC才表示统一下单成功
    6.支付签名(二次签名)参数名必须是小写基本参数ASCII码排序,秘钥放最后
    7.服务器返回给客户端的必须是二次签名

    客户端业务逻辑

    1.导入微信支付SDK,并在项目URL types增加微信白名单。
    2.注册APPID。
    3.调起支付。客户端吊起支付后,商户服务器会调用统一下单API返回预支付标识。
    4.支付结果回调。在此回调里我们可以得到返回错误码,但是一定不要将这里返回的支付结果作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准,即在此回调errCode=0且服务器收到的成功支付通知时才是用户支付成功的标志。

    那个说的好像差不多了,今天就到这吧。

    可能有人问,作为一名iOS程序猿,后台的业务逻辑又不是我们的职责。话虽这么说,但是后台的业务逻辑我们还是要清除一点的,尽管不去专写后台代码。下次笔记,一起搭建一个本地的微信支付商户服务器后台,借此来了解后台的业务逻辑,同时也能了解和感受一下另一门语言的项目架构和风格。

    --20171021夜



    时间万物都需要额外的能量和秩序来维持自身,
    无一例外。
    -------------------------------------------------------宜休整

    相关文章

      网友评论

        本文标题:微信支付集成之2业务逻辑分析

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