请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

开发问题 微信支付接入问题解答集中帖

0
回复
157
查看
[复制链接]

8

主题

91

帖子

495

积分

 楼主| 2018-12-14 20:34:15 显示全部楼层 |阅读模式
本帖最后由 vivo官方技术团队 于 2019-1-7 17:40 编辑

0x00 微信支付简介

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

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

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

1. APP支付

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

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

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

0x10 接口使用方式


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

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

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

2. 网页支付补充说明
由于历史原因,在快应用中使用网页支付需要开发者实现一个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。

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

答:APP方式支付,支付成功会通过success回调,并带有prepayid。
网页支付方式,支付成功是回调到服务器端的地址,所以这种情况下,success回调只表示成功向微信发起了请求。

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

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

(持续更新....)

请在此帖子下面回复你遇到微信支付相关问题,如果是共性问题,我们解答之后将会更新到FAQ中!











回复

使用道具 举报

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