• 微信支付调试


      1. 首先使用官方demo跑通。

      2. 理解微信支付的流程:

        首先后台服务端,先预下单,从微信获取preOrder订单号。然后后台使用雨订单号等六个字段重新签名返回给app端

      3.app端所做的工作很少,只是获取服务端返回的参数即可。


    现象:跳转支付页面只有一个确认的按钮

    原因: 1. appid没有配置对。

        2. 后台的参数返回不正确。(注意后台返回的签名自的字段是有严格要求,特别是给app端使用的,不能多,不能少,字段必须排好序,最终生成的签名字符串必须是大写)


    后台调试的时候,为了方便,使用了Golang的反射机制,遍历字段,但是需要区分传入的参数是指针还是stucture, 如果是指针的话,获取的key, value都是错的

    当前面的CanSet是一个指针的时候(p)它是不可寻址的,但是当是p.Elem()(实际上就是*p),它就是可以寻址的

    http://www.cnblogs.com/yjf512/archive/2012/06/10/2544391.html


    ps : golang 的支付宝,微信支付都可以搜索得到,好无力啊。

    http://blog.csdn.net/xyzhaopeng/article/details/50386349

    http://blog.csdn.net/xyzhaopeng/article/details/50374191

    支付完成后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答。 对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。 (通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒) 注意:同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。 推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。 特别提醒:商户系统对于支付结果通知的内容一定要做签名验证,防止数据泄漏导致出现“假通知”,造成资金损失。


    注意 一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。代码示例如下:

  • 相关阅读:
    不用π求坐标夹角大小
    使用LVS实现负载均衡原理及安装配置详解
    从dfs向动态规划过渡
    关于dfs
    [LeetCode] Add Two Numbers
    [LeetCode] Gray Code
    [LeetCode] Single Number
    第四章 深入JSP技术
    蚂蚁破2万亿!身价暴涨2077亿的彭蕾:无论马云的决定是什么,我都让它成为最正确的决定...
    异常场景测试
  • 原文地址:https://www.cnblogs.com/studyNT/p/5456993.html
Copyright © 2020-2023  润新知