微信app支付退款

写给以后的自己。怕忘记。大神绕道。用自己的理解方式去写的。
微信官方的文档写的总是有点模糊,希望这篇文章对正在做微信app支付的人解燃眉之急
名词解释:商户---就是你开通app支付功能的一个账号。所有用你app的人如果产生资金交易都会进入这个微信的账户。或者与此商户绑定的银行卡
商户能提供的是
appid 你的appid 也就是对于微信来说的唯一标示
appsecret 通过你的微信商户号进入就可以看到一个32位加密
key 商户的秘钥 这秘钥不是一开始就有的。需要你自己去设置,在设置的时候还需要与本商户号绑定的手机发下验证码
mchid 商户id不解释
微信app支付退款
微信app支付退款

 上面的四个参数是固定的。可以说是常量都不用然后就开始我们的第一个接口的使用
统一下单:这个接口就是我们发起支付的入口。这个统一下单需要两次sign 第一次是还没有发起请求的时候
根据统一下单需要的参数拼接字符串。格式参考文档,他第一次签需要的参数都是我们看到在文档里写的必须的参数,当然sign是没有的,因为我们要生成。注意:文档里也说了 最后的参数是key  前面的参数要按照字母顺序排序,(第一次签名是文档中的参数名原样),然后我们按照如此方式发送请求,下面看看我的getPayNo方法

微信app支付退款



就是一个httpclient(后台模拟web端请求服务器)请求的过程然后就可以得到我们要的prepay_id,到这里 我们的统一下单接口就调用完毕了。但是现在我们给app返回的数据是什么呢?注意:这里我们在给app返回的时候要进行第二次签名注意参数,和官网的文档大小写是有出入的。要全部小写也不要下划线这里的value都是我们在上面的那步就弄好的了。这里就放进去就可以,还需要注意的就是sortedMap 这个map自带排序

微信app支付退款



上图是我的生成sign的方法(这个方法使用里两边,网上也有自己纯字符串拼写的)
weChatPayView这个对象就是我需要给他们返回的,我这里用的是jsonobject 把wechatpay转换为json了。这里看实际代码需求,这里我们就等着看我们设置的notify_url是不是有相应,如果支付成功了一定会有相应,然后我们在根据我们的业务逻辑去操作在我们的回调通知中。记住这里要给微信返回success(xml微信文档里有),不然会心跳好多次,调用我们的notify_url我上次就是返回的错误了。连续调用了很多次 用户充值1块变 成了好多块,,,,,
到这里就可以支付了。其中最容易出错的就是sign的生成的过程容易出错。这个流程是不会错的,注意细节。其实支付不是难的,难的是项目中的业务流程

下面说下退款的使用,我这里就以java举例
你需要下载安全正书,这个证书只需要用流都进来就ok了,具体看我的代码截图

微信app支付退款
微信app支付退款


这里的sign生成的方式与统一下单一样,就是用那些必须的参数(必须的参数就是请求退款必须的参数,sign除外)生成,然后这个Golbal.getConfig方法是我的一个全局方法,加载properties文件的一个key获得value,这个要是都不会就太。。。。,下面是我的postXmlHttpClientWithCert方法代码截图

微信app支付退款



里面有我注释掉的 ,就是请求超时什么的。我不需要,上面的代码是死的。可以照搬,注意自己的参数传入问题。有机会研究下加密什么的。我们java用的就是那个p12 证书文件,好了就这样,我是理解了。其实就是为了让自己再看到这篇博客时能捡起微信支付。如果你看不懂可以问我。勿喷

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值