JSAPI支付的文档中说「JSAPI支付适用于线下场所、公众号场景和PC网站场景。」
然后在调用下单接口时要求传入 payer.openid,因为是pc网站,也没办法知道微信用户的信息,这个参数要从什么地方获取?
更新
查了一些资料,感觉可以这么操作,不知道是否可行:
1. 用户点击pc网站上的「使用微信支付」弹出二维码,二维码为h5页面的地址
2. 用户用微信扫描二维码,打开h5页面
3. h5页面地址为微信的一个用户授权地址见文档:[网页授权 | 微信开放文档 (qq.com)](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html),由于只需要获取 `openId` 因此是静默授权
4. 静默授权之后会跳转到一个指定的地址(我们的网站),后端通过url参数获取到 `code`
5. 后端将 `code` 传给微信的一个接口(见第3步的文档),接口返回 `openId`
6. 后端调用JSAPI下单接口,并传入 `openId` 和 商品信息等,最终得到一个 `prepay_id` ,并返回给h5前端
7. 前端通过微信浏览器内置的`WeixinJSBridge.invoke`方法调起支付
8. 支付完成后,h5前端展示一个完成支付的页面
9. 后端收到支付结果通知,修改系统内的定单状态
PC 网站使用微信支付只能用 扫码支付 (Native支付);
JSAPI 适用于 小程序 和 微信公众号H5网页;
如果是手机网页(非微信浏览器),使用H5支付
JSAPI只适用于微信公众号和小程序。 微信公众号需要通过 `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${encodeURIComponent(host())}&response_type=code&scope=snsapi_userinfo&state=1&connect_redirect=1#wechat_redirect` 获取code之后去后端用code 交换access_token和openid以便获取用户信息; 小程序则是 wx.login 获取code之后去后端用code 交换access_token和openid; 具体你要看文档, pc你应该用h5支付不能用jsapi
PC支付用这个
https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_7_0.shtml