用户登录

准备好了支付相关的数据,现在就可以把它发给微信支付系统,让它生成一个预支付交易了 .. 发送 HTTP 请求需要用到一个包 .. 回到命令行 .. 执行一下:

npm install axios --save

这个 axios 可以发送 http 请求 .. 安装好以后,回到控制器 .. 先导入这个 axios .. 然后再去定义一下请求的地址 .. 可以放在 wxpay 这个配置文件里 ..

先添加一个 api .. 里面再添加一个 unifiedorder ,它的值就是微信支付统一下单接口的地址 .. api.mch.weixin.qq.com/pay/unifiedorder ..

回到 checkout 控制器 ... 添加一个支付接口地址 .. 名字是 unifiedOrderApi .. 对应的值可以使用 Config 的 get ,去得到 wxpay 里的 api 下面的 unifiedorder 这个配置的值 ..

下面再去调用统一下单接口 .. 用一下 axios 的 post 方法 .. 请求的地址可以使用 unifiedOrderApi 来表示 .. 请求里面包含的数据就是上面处理好的这个 xml 格式的数据 .. xmlOrder ..

axios 会返回 promise .. 这里我们可以在这个控制器方法的前面,添加一个 async ,表示方法里面有一些异步的动作 ..

这样在这个 axios 的前面,可以再用一个 await ,等待请求得到的响应 .. 再给这个响应起个名字 .. 可以是 wxPayResponse ...

下面再输出这个 wxPayResponse ,检查一下里面的东西 ... logger.info('预支付响应:', wxPayResponse) ..

回到浏览器 .. 刷新一下 checkout 页面 .. 再打开 app.log .. 找到输出的这个预支付响应 .. 在这个响应里的这个 data 属性里面,有我们需要的数据 ..

不过这里给我们返回的代码是 FAIL ,意思是失败了 .. resturn_msg 里面有具体的信息 .. 提示说 trade_type 参数格式错误 ..

这个是因为 .. 之前我忘了把这个 trade_type,就是交易类型添加到要发送的数据里了 .. 添加一个 trade_type ..

回到浏览器 .. 刷新一下 checkout 页面 .. 再回到 app.log ..

这回返回的状态码是 SUCCESS .. 里面会包含我们需要的一些数据 ..

请求预支付《 微信支付:开发准备与扫码支付 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点