

Paste_Image.png
查看onResp方法,获取该方法的微信返回码,自己构建广播,然后接收广播以获取结果. 每个人都一定会想到的,对吗?这不是正常的微信付款吗?什么坑?

Paste_Image.png

看看我们的微信支付代码,当然,复制WXPayEntryActivity的这一步确实是不可避免的.
因此,让我们谈谈代码中的pay方法. 支付方法包含一个请求服务器创建订单的请求,以及一个在支付完成后查询支付结果的请求. 但是您只需要传递回调即可接收结果. 您无需关心任何内部流程. 这是真正的模块化,对吧?
整个支付过程实际上是跳转到新活动的过程,但是此过程添加了参数和回调. 在新活动中,我们创建一个订单,获取付款信息,然后调用微信SDK进行付款.
这种付款方式估计每个人都可能听说过,但是您所听到的可能与我们的完全不同. H5付款微信支持微信内部转账和微信外部转账.
今天我要说的是微信外部转帐付款(以下简称H5外部付款).

H5外部支付的优势:
1. 签名独立性(整个付款不需要您在微信后台填写应用签名)
2. 套餐名称无关紧要(整个付款不需要您在微信后台申请该应用程序)
想象一下,如果您是SDK开发人员,并且外部任何人都可以使用您的SDK,那么每次有人使用您通过微信申请应用程序,然后申请应用程序支付权限时,那么?当其他人开发时,他们每次也需要使用在微信后台配置的签名. 成千上万的开发人员正在这样做,您疯了吗?
是的,您现在需要使用此方法.

首先支付sdk,让我们首先了解H5外部付款的原理. 这个东西的正常使用情况是这样的,您有一个应用程序,需要从H5付费,然后需要在Webview中进行操作,服务器从微信下订单并获取一个url,该URL自动出现在webview Jump中,并且然后深度链接到微信. 这样,微信支付就可以转移了. 此时,付款完成后,返回到您的应用程序Web视图,单击“我已付款”,然后服务器查询付款结果,然后将其显示在网页上.
在进行深层链接之前,客户无法获得微信H5外部付款. 整个过程需要在其自己的服务器上执行. 服务器发出各种请求后,将获得一个http协议链接,其中包含微信位置的深层链接. ,并在呼叫后将其发送给客户端.
微信已通过安全性认证. 客户端必须请求服务器创建订单,才能获得整个订单的创建和付款. 当服务器在微信上下订单时,需要发送客户的IP,付款连接将返回给客户,请注意,此时您无法获得Deeplink,需要客户验证IP在webview中获取深层链接. 然后坑出现了:

Request code.png

在上图中,这是我们发送引荐来源的正常Webview方法. 然后在android4.4.4上,服务器无法接收引荐来源字段. 那么如何在android4.4.4上解决这个问题呢?
阅读了webview的所有API之后,我找到了一个方法webview.loadDataWithBaseURL(baseUrl,htmlData)
此方法用于加载手机的本地HTML,而baseUrl用于组织HTML中的相对路径. 我们知道支付sdk,实际上,正常的请求,这个东西与引用者是一致的,那么引用者可以写在这个字段中,但是如何请求URL链接,因为这是获取深度链接的最关键的步骤,是的,为什么加载js的一部分并自动跳转?因此,有以下代码.

HTML中的js会自动跳转以获取深层链接,然后Webview会自动将深层链接跳转至微信支付.
至此,问题得以完美解决!
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-253680-1.html
没看到物价下降