微信小程序 支付接口 java

本文介绍了微信小程序支付接口的对接过程,强调了仔细阅读接口文档的重要性。主要步骤包括:1) 获取openid;2) 签名;3) 调用统一下单接口;4) 再次签名并返回数据;5) 设置通知地址处理支付结果。常见问题包括对业务流程理解不清晰、签名错误和参数缺失等。
摘要由CSDN通过智能技术生成

微信小程序支付接口的对接:

    先谈一下“肝炎” 吧,的确很火大。因为以前对接过app的支付。感觉不会很难,毕竟流程都差不多。但是,又是想当然了。

    郑重声明:接口文档一定要看,不然很乱。

    你理不清楚这个接口,那么你到底该怎么对接? 杂乱不清楚。接口么,地址,上传方式,请求返回 等等什么的,你说清楚了就行了。你非要总结一下,所有的接口都调用https 传输。提交方式都是POST,数据格式都是xml格式....拜托。你简单了,别人就很难了。果然是.....

    说了这么多,有抱怨,但是,更多的是告诉你好好看接口文档,对做这个小程序支付非常必要。不多说其他的了。

    先看业务流程:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=3

    简单点的来说,就是小程序上传支付的数据,后台按照各种要求,返回小程序支付需要的5个字段值。掉起支付。然后,接收支付结果。完成了。

    难点的说:

    1.小程序提交支付的数据(这个里边包括code),你接收完数据后,

    2.第一步是获取openid,对,这个openid并不是前端给你返回来的,是自己获取到的。具体方式是调用

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

接口,这个是微信给的接口,在小程序登录api中有。你看接口文档。 

    3.再然后是签名。设所有发送或者接收到的数据为集合M,需要ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。签名算法是这样介绍的。从这里看来,一字千金还真是没有错。设所有发送或者是接收的数据为集合M,这个M是个什么东西,你所有的提交的数据?打错特错了。其实,数据是统一下单的所需要的参数。没有的可以不写。怎么也没有想明白,集合M是个什么东西。哪怕,第一次写app接口的时候,也是稀里糊涂的写完的,并不感觉这个是一个什么重要的东西。

4.调用统一接口,获取数据,然后再次签名,把这些数据发送回去。然后,完成了。因为统一下单接口,没出什么错误。就不详细介绍了。

5.签名的时候,有个通知地址,你需要在这个地址里边解析支付结果通知。其他的没问题了。

流程就基本按照以上5步骤了。不算严格。简单了。

那么,接下来就说一下,遇到过的问题。

    1>对业务流程不清楚。因为不知道openid是自己获取的。大致的看了一眼,就感觉是前端的事儿,自己就没有看。流程出现了问题。

    2>签名错误,或者是支付签名不匹配。忘了具体通知的哪个错误了。这个里边就是签名的参数多了,少了。或者是大小写字符错了。最好直接复制。前人的教训。两次签名的参数是不一样的。第一次是统一下单的参数。第二次是返回去小程序调起支付的5个参数。

    3>total_fee,缺少参数total_fee。虽然报出来这个错误的原因。但是,原因可能不是缺少这个参数。我的是package这个参数,返回给前台了,但是,他不知道怎么都获取不到。出现了这个问题。

    具体代码,不写了,就说一下业务流程与遇到的错误的原因及其解决方法。祝您,一次调用成功,完成这个小程序支付功能

    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值