找回密码
 立即注册

微信小程序支付接口的实现

匿名  发表于 2023-3-24 10:03:50 阅读模式 打印 上一主题 下一主题
小法式付出:

同学先容接了个私活,开辟一个付出模块,之前没有搞太小法式想借此机遇学一下。由于甲方的缘由(不会设备付出目录,不懂APP_ID与MCH_ID的区分,给错了API_KEY)调研了一下午后决议利用小法式付出API。小法式的付出更简洁了些,不需要设备付出目录、不需要授权域名等操纵。实在首要的流程就两步:
开辟者办事端向微信办事器倡议同一下单请求,把返回的参数处置一下给小法式端,小法式调起微信付出。
1. 预备工作:

微信小法式的付出功用共需要以下几个参数
  1. APP_ID="";
  2. MCH_ID="";
  3. API_KEY="";
  4. OPNE_ID="";
复制代码
1.1 申请办事号(需要用的MCH_ID)小法式认证、接通微信付出


微信小法式付出接口的实现-1.jpg
小法式认证今后,可以在小法式背景,微信付出菜单栏,申请微信付出。填写企业信息和对公账户,微信付出会打一笔随机金额到对公账户,输入金额完成考证后,在线签订迁移,即完成了微信付出的申请流程。微信付出申请完,会发送微信付出商户号,商户平台用户名密码等信息到注册者邮箱。
1.2 设置小法式密钥


微信小法式付出接口的实现-2.jpg
小法式背景设备页,点击天生,治理员考证二维码后,会随机天生AppSecret。请妥帖保管好Appsecret,不要明文存储于办事器,AppSecret用于和微信办事器交互。比如获得用户的openid接口就需要用到。
1.3 设置微信付出密钥和证书

在微信付出(http://pay.weixin.qq.com)在账户中心,API平安中下载证书和设备密钥。密钥是32位,设备今后需要妥帖保管,由于没法检察密钥,一切微信付出相关的接口城市利用这个密钥加密。此处毛病会致使挪用同一下单接口时返回签名失利。

微信小法式付出接口的实现-3.jpg
2. 微信付出流程:

微信付出有多种付出方式,包括刷卡付出,公众号付出,扫码付出,APP付出,一切微信付出的接口都可以在这里找到:https://pay.weixin.qq.com/wiki/doc/api/index.html 。
小法式是在微信里调起付出的,实在是公众号付出,关于公众号付出的具体文档可以这里找到: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1一切公众号付出相关的链接都可以在此链接找到,开辟者首先需要大方法会这些接口。
小法式公众号付出的首要流程以下(本图只斟酌了一般流程,异常流程参考公众号付出文档):

微信小法式付出接口的实现-4.jpg

小法式内点击付款后,在后端天生定单,后端获得openId后对定单停止二次封装(包括APP_ID,MCH_ID等内容),将封装信息转成XML格式落后行加密获得签名(Sign)。挪用同一下单接口后,微信背景会返回一个XML文件,其中包括:prepay_id(微信天生的预付出会话标识,用于后续接口挪用中利用,该值有用期为2小时)。将小法式付出所需要的内容再次封装加密后天生PaySign,然后将天生的参数传递到小法式前端挪用wx.requestPayment方式即可。
2.1 关于代码:

下载官方的JAVAsdk包后点窜 WXPayRequest.requestOnce()方式,将domain改成微信同一下单的url,也可以间接实现IWXPayDomain接口,实现主备域名自动切换。
  1. HttpClient httpClient = HttpClientBuilder.create()
  2.         .setConnectionManager(connManager)
  3.         .build();
  4. String url = "https://" + domain + urlSuffix;
  5. HttpPost httpPost = new HttpPost(url);
复制代码
流程思绪:将定单信息及密钥等信息封装落后行加密签名获得sign,将sign也封装在Map调集傍边,转化成XML后利用HTTPSClient转发到微信背景办事器,背景办事器会返回一个XML数据,将XML数据剖析后,按照小法式付出所需要参数,停止二次签名,完成后将参数返回到小法式前端即可。
2.2 关于openid

上述流程中请求openid,用的是小法式最新api中的接口,开辟者可以检察小法式的登录接口。开辟者从第三方办事器获得的openid,在同一下单的接口里面需要利用到。
2.3 关于小法式调起微信付出

上述流程中的小法式调起微信付出,用的是小法式微信付出接口wx.requestPayment,该接口的具体描写可以检察小法式的微信付出API。
这个接口中的package和timeStamp参数是从开辟者的第三方办事器返回的,package是第三方办事器从同一下单接口答复中获得。接口中其他的参数,appId,noceStr,signType以及paySign则由小法式这边存储大概计较而得。其中paySign是签名,签名算法文档在这里:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3&t=20161107
全部公众号付出的首要流程根基都是在第三方办事器上实现,开辟者需要熟读公众号付出文档,领会消息交互流程以及每个接口。
这里并没有描写一般微信付出必不成少的一些功用:异常处置,查询定单,倡议退款,下载对账单等等。
3. 开辟进程中的题目:


  • 甲方给错了密钥!!!!原本估计一天搞完,成果浪费了一下午的时候。
  • 确认用户的openid和appid是对应的。在请求同一下单接口时一定要确保提交参数中的openid是其对应appid下的用户,不婚配的appid和openid在同一下单会返回一个APPID_MCHID_NOT_MATCH 毛病。
  • 小法式付出需要再次签名考证。原本以为只要把第一次的签名及各类参数传到前端即可,成果一向显现签名失利。小法式挪用付出的方式所需要的签名,需要依照规定格式再次转化成XML然后利用加密算法获得sign,留意小法式付出的参数名。
回复

使用道具

说点什么

您需要登录后才可以回帖 登录 | 立即注册
HOT • 推荐

神回复

站长姓名:王殿武 杭州共生网络科技 创始人 云裂变新零售系统 创始人 飞商人脉对接平台 创始人 同城交友聚会平台 创始人 生活经验分享社区 创始人 合作微信:15924191378(注明来意)