zoukankan      html  css  js  c++  java
  • 微信支付之无感支付

    停车免密支付功能的开发  首先我们需要做的是申请微信商户号并开通微信代扣

    场景图

    前端功能开发:
    车辆进场
    车辆入场,停车场将用户车牌信息传给小程序。小程序根据车牌信息查询用户是否开通微信免密支付,将查询结果返回给停车场。
    车辆出场
    1、针对开通免密支付的车辆,车辆出场时停车场请求小程序的免密支付,小程序请求车主服务申请扣款将微信受理的结果返回给停车场。
    2、小程序订单受理成功,停车场受理失败,由用户线下缴费,停车场调取小程序接口冲正。小程序接到冲正提示,小程序判断用户是否支付成功,状态为支付成功时将用户付款原单退回。
    3、小程序订单受理失败,停车场受理失败,由用户线下缴费。
    4、小程序与停车场均受理成功,微信返回的异步返回扣款结果失败。
    1)已开通微信垫支,会由微信垫支给到第三方,再由微信通知用户缴费。
    2)未开通微信垫支,小程序后端会记录异常订单,由第三方联系用户缴费。

    开通免密支付流程
    1、车主服务 用户状态查询API对接;
    2、车主服务 授权开通API对接;
    3、车主服务 车牌状态变更通知API对接;(3是2的回调)
    4、停车场 2.5免密支付车辆签约接口;(如入场调取4)(查看停车场接口 RecordDensityPay实现)

    冲正流程
    1、提供冲正接口 (查看停车场接口PostCarCorrect实现)
    2、调用车主服务的申请退款。车主服务,申请退款API对接;
    3、车主服务 退款结果通知API对接;

    线下流程
    1、车主服务 申请退款API对接;
    2、车主服务 查询退款API对接;
    3、车主服务 查询订单API对接;
    4、车主服务 退款结果通知API对接;

    垫支流程:
    1、车主服务 微信垫支还款API对接;

    后端微信免密支付订单管理功能:
    1、订单查询管理(支付失败,已支付,已退款,冲正退款)
    2、异常订单查询管理(异步扣款失败)

    需要与停车场对接 微信支付对接 小程序对接

    小程序方面 需要开通微信免密支付 验证用户是否绑定车牌号

    删除车牌时 需要提示用户已经开通免密支付 需要解绑才能删除车牌

    与车主服务小程序对接,在用户点击微信免密支付时唤起车主服务小程序,将用户微信号及车牌号传给车主服务小程序。

    微信开发文档:https://pay.weixin.qq.com/wiki/doc/api/pap.php?chapter=18_3&index=8

    字典排序帮助类

    //字典排序
            public static string DictionaryRank(Dictionary<string, string> dic)
            {
                StringBuilder sb = new StringBuilder();
                if (dic.Count > 0)
                {
                    dic.OrderBy(r => r.Key).ToDictionary(r => r.Key, r => r.Value);
                    List<KeyValuePair<string, string>> lst = new List<KeyValuePair<string, string>>(dic);
                    lst.Sort(delegate (KeyValuePair<string, string> s1, KeyValuePair<string, string> s2)
                    {
                        return s1.Key.CompareTo(s2.Key);
                    });
                    dic.Clear();
    
                    for (int i = 0; i < lst.Count; i++)
                    {
                        sb.Append((i == 0 ? "" : "&") + lst[i].Key + "=" + lst[i].Value);
                    }
                }
                return sb.ToString();
            }

    调用微信支付接口并回调(具体参数查看接口文档)

  • 相关阅读:
    JAVA正则表达式判断元音
    JAVA正则表达式校验qq号码
    方法
    数组
    Java基础随笔3
    LDA背景资料
    scrapy系列(四)——CrawlSpider解析
    scrapy系列(三)——基础spider源码解析
    scrapy系列(二)——startproject、genspider创建项目与模板使用
    我眼中的机器学习(四) 快速寻找最优解
  • 原文地址:https://www.cnblogs.com/dujian123/p/11990349.html
Copyright © 2011-2022 走看看