快应用微信支付问题


0x00 微信支付简介

快应用 微信支付接口 支持微信 APP 支付和微信网页支付。

在使用快应用 微信支付接口 之前,开发者需要确认已经在微信后台成功接入微信 APP 支付或者微信网页支付。

0x01 接入微信方式 接入微信是指在微信开放创建应用,只有在 微信开放平台 创建并且微信审核过后,才能发起微信支付。 需要先在 微信开放平台 创建开发者账号,然后接下来根据需要创建对应的应用。

  1. APP 支付

如果需要使用 APP 支付,那么需要创建 【移动应用】 ,填写相关信息,在后面出现的选项中选择 Android 应用。

这里需要填写应用签名和应用包名,其中: 包名 使用快应用的包名或者自定义的新包名。(不可使用已在安卓应用上接入过微信支付的应用包名。) 签名 用于签名快应用的公钥证书的 MD5 fingerprint。获取方法请参考帖子 戳这里

  1. 网页支付 如果需要使用网页支付,那么需要创建【网站应用】,填写相关信息即可。

0x10 接口使用方式

最佳姿势当然是参考 微信支付文档

  1. APP 支付补充说明 根据文档说明,在 manifest 中配置 service.wxpay 接口的 package 和 sign 参数。

这里补充说明一下: sign 参数的内容是,用于签名快应用的公钥证书(certificate.pem)内容的 Base64 编码明文。 注意:不包括前后的 BEGIN/END 分隔符。

  1. 网页支付补充说明 由于历史原因,在快应用中使用网页支付需要开发者实现一个 H5 中间页用于设置 referer。 不过,快应用从 1040 版本开始提供免中间页的方式使用网页支付。

2.1 中间页方式

可以参考这篇帖子中的微信 H5 方式章节 戳这里

2.2 免中间页方式

1040 版本以后的引擎才支持 相比中间页方式,不用配置 manifest 中的 url,也就是不用实现中间页,只需要在调用接口时填入 referer 即可。

0x11 FAQ.

  1. 为什么有些帖子中描述 APP 方式接入需要创建 Android App?

答:创建 Android App 的方式也可以,只是比较麻烦。建议使用 这篇帖子 中的方式,不需要 Android App。 APP 方式接入的关键在于将公钥签名证书的 MD5 注册到微信开放平台,微信官方提供了工具用于获取 Android App 中签名 MD5,但是比较麻烦。 建议使用 openssl 工具直接读取公钥中的 MD5。

  1. 如何确认微信支付成功?

答:APP 方式支付,支付成功会通过 success 回调,并带有 prepayid。 网页支付方式,支付成功是回调到服务器端的地址,所以这种情况下,success 回调只表示成功向微信发起了请求。如果需要接收这个支付结果,请在微信【统一下单】接口的请求参数里面带上 notify_url,参考[微信文档]:(https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_7&index=8)

  1. 微信 APP 方式返回错误 1000,但是手机已经微信已经安装微信,这是什么原因?

答:这个问题有两种可能:

  1. manifest.json 文件中没有配置 app 支付的相关参数
  2. 微信 APP 支付需要依赖手机厂商实现,该厂商未在该机型上实现微信 APP 支付,也会导致返回 1000,具体支持机型请参考官方文档或者在微信/QQ 群咨询厂商人员,比如:vivo 技术弟(微信:vivo-technology)

results matching ""

    No results matching ""