NEWS

微信小程序怎样和服务器交互?

2020.11.10火猫网络阅读量: 38588

把自己的服务器域名配置到白名单之后,就可以在小程序直接对自己服务器发起请求了。

需要注意的有两点:

小程序登录:

  1. 小程序端调用 wx.login() 方法获取到当前用户的code,传给服务器。
  2. 服务器调用 https://api.weixin.qq.com/sns/jscode2session, 获取到用户的基本信息,包括openid,并存储到数据库中。
  3. 小程序在需要时可以调用getPhoneNumber,要求要使用button元素,获取到关于用户手机等敏感信息的加密内容,传给服务器,服务器解密后获取的完整信息,并存储。



小程序支付:

  1. 小程序内调用登录接口,获取到用户的openid,api参见公共api【小程序登录API
  2. 商户server调用支付统一下单,api参见公共api【统一下单API
  3. 商户server调用再次签名,api参见公共api【再次签名
  4. 商户server接收支付通知,api参见公共api【支付结果通知API
  5. 商户server查询支付结果,api参见公共api【查询订单API


特别注意点:

1、同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。

2、后台通知交互时,如果微信收到商户的应答不符合规范或超时,微信会判定本次通知失败,重新发送通知,直到成功为止(在通知一直不成功的情况下,微信总共会发起多次通知,通知频率为15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m),但微信不保证通知最终一定能成功。

3、在订单状态不明或者没有收到微信支付结果通知的情况下,建议商户主动调用微信支付【查询订单API】确认订单状态。

特别提醒:

1、商户系统对于支付结果通知的内容一定要做签名验证,并校验返回的订单金额是否与商户侧的订单金额一致,防止数据泄漏导致出现“假通知”,造成资金损失。

2、当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

3、技术人员可登进微信商户后台扫描加入接口报警群,获取接口告警信息。


若有定制开发需求,请联系: 18665003093(微信同步)