微信支付唯一需要注意的就是参数格式,一丢丢都不可以错,甚至有网友说顺序也要跟文档上一样
现在这些都不用考虑,这里已经做好封装只需传递相应参数,里面自动处理请求返回,你只需要处理回调结果
一、导入依赖
//微信api
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
implementation 'com.github.GuangNian10000:MyWeChatpay:v1.0'
二、实现 IWXAPIEventHandler 接口
public class MainActivity extends AppCompatActivity implements IWXAPIEventHandler{
@Override
public void onReq(BaseReq req) {
Toast.makeText(this, "支付回调", Toast.LENGTH_LONG).show();
}
@Override
public void onResp(BaseResp resp) {
if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
//回调结果
if (resp.errCode == 0) {
Toast.makeText(this, "支付成功", Toast.LENGTH_LONG).show();
} else if (resp.errCode == -2) {
Toast.makeText(this, "支付取消", Toast.LENGTH_LONG).show();
}
}
}
}
三、调用方法
private IWXAPI api;
private void initView() {
//初始化
api = WXAPIFactory.createWXAPI(this, app_id);
api.handleIntent(getIntent(), this);
}
@Override
public void onClick(View view) {
//点击支付时跳转微信
/**
* APPID
* MCH_ID 商户ID
* API_KEY 支付密钥(注意是商户平台的密钥)
* orderOn 订单编号(可以自己随机生成需要是32位)
* productfeeName 商品名称
* price 价格
* callBackUrl 成功回调地址(这里必须是外网能访问的地址,如http://125.74.1.13:8124/#/)
* orderType 传NULL就好
* spbill_create_ip 当前网络请求的IP地址,如192.168.0.1
*/
//这里订单编号用UUID生成去掉'-'刚好是32位
order_no=UUID.randomUUID().toString().replace("-", "");
new PayWechatManager(this).toWeChatPay(app_id, mch_id,
api_key, order_no, productfeeName, price,
callBackUrll, null,spbill_create_ip);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
完