zoukankan      html  css  js  c++  java
  • 微信支付调试

      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返回的结果为准。代码示例如下:

  • 相关阅读:
    771. Jewels and Stones
    706. Design HashMap
    811. Subdomain Visit Count
    733. Flood Fill
    117. Populating Next Right Pointers in Each Node II
    250. Count Univalue Subtrees
    94. Binary Tree Inorder Traversal
    116. Populating Next Right Pointers in Each Node
    285. Inorder Successor in BST
    292. Nim Game Java Solutin
  • 原文地址:https://www.cnblogs.com/studyNT/p/5456993.html
Copyright © 2011-2022 走看看