微信SDK支付

准备工作:

1.引入微信SDK(cdn或npm)

2.公众号注册支付的域名路径和开发者

开始调用支付

	注册信息: 一般由页面初始化时调用后端接口,一般参数传{
	当前页面域名路径 Url
	& openId 
	& orderId(订单ID)
	}之类的,得到注册信息
	1. 调用支付方法前要 注册调用的方法(API):
      wx.config({
        debug: false, //这里一般在测试阶段先用ture,等打包给后台的时候就改回false,
        appId: appId,
        timestamp: timeStamp,
        nonceStr: nonceStr,
        signature: signType,
        jsApiList: ["chooseWXPay"],
      });
	
	2. ready是注册结果的回调,毕竟你得方法注册成功才能用,才能调用支付的
	 wx.ready(function () {
        // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之
        //后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,
        //则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接
        //口,则可以直接调用,不需要放在ready函数中。
		3.调用支付
        wx.chooseWXPay({
          //  appId: appId,
          timestamp: timeStamp,
          nonceStr: nonceStr,
          package: packages,
          signType: signType,
          paySign: paySign,
          success: function (res) {
            // 支付成功后的回调函数
    
            // Toast.success("支付成功");
          },
          //如果你按照正常的jQuery逻辑,下面如果发送错误,一定是error,那你就太天真了,当然,jssdk文档中也有提到
          fail: function (res) {
            Toast.fail("支付失败");
          },
          complete: function (res) {
            //接口调用完成时执行的回调函数,无论成功或失败都会执行。
          },
          cancel: function (res) {
            //用户点击取消时的回调函数,仅部分有用户取消操作的api才会用到。
          },
          trigger: function (res) {
            //监听Menu中的按钮点击时触发的方法,该方法仅支持Menu中的相关接口。
          },
        });
      });
微信SDK支付回调WXPayEntryActivity主要是通过发送广播的方式实现的。 在微信支付完成后,微信SDK会将支付结果回调到你在微信支付时指定的回调Activity中,这个Activity就是WXPayEntryActivity。在WXPayEntryActivity中,你需要重写`onResp`方法来接收微信支付的结果。 具体而言,`onResp`方法接收一个`BaseResp`对象,该对象包含了微信支付的结果信息。在`onResp`方法中,你可以根据支付结果的状态,进行相应的处理。例如,如果支付成功,你可以跳转到支付成功的页面,如果支付失败,你可以提示用户支付失败并让用户重新支付。 另外,为了将支付结果传递到你的其他组件中,你还需要在`onResp`方法中发送广播。具体而言,你需要创建一个Intent对象,并将支付结果放入Intent中,然后通过`sendBroadcast`方法将Intent发送出去。在其他组件中,你可以注册一个BroadcastReceiver来接收这个广播,并根据支付结果的状态进行相应的业务处理。 在微信SDK中,发送支付结果广播的代码如下: ```java Intent intent = new Intent(ACTION_PAY_RESULT); intent.putExtra(EXTRA_PAY_RESULT, resp.errCode); sendBroadcast(intent); ``` 其中,`ACTION_PAY_RESULT`是广播的Action,`EXTRA_PAY_RESULT`是支付结果的Extra字段。在你的组件中,你需要注册一个BroadcastReceiver,并监听`ACTION_PAY_RESULT`这个Action,当收到这个广播时,你就可以根据`EXTRA_PAY_RESULT`字段来处理支付结果了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值