Android 微信支付配置流程

本文详细介绍如何在Android应用中集成微信支付功能,包括开发者账号申请、应用配置、SDK集成及支付流程实现等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.先去微信开放平台申请开发者账号,注册应用信息(点我)

1.1)创建移动应用,填写一系列的应用信息之后提交平台审核,等待通过(这里忽略申请详情步骤)
在这里插入图片描述
1.2)通过审核之后,开通微信支付功能在这里插入图片描述

如果你还未做发开者验证,这里首先要先认证你的开发者资格,也就是交三百软妹币,之后按照需求填写企业或者个体信息即可(这里不过多赘述)
在这里插入图片描述
---------------极度注意点----------------------------------------------------------------------------------------------------------------------------------------
1.3)这一步取决你接下是否可以唤起支付页面
在这里插入图片描述
应用包名:是在APP项目配置文件AndroidManifest.xml中声明的package值,例如DEMO中的package=“net.sourceforge.simcpux”。

应用签名:根据项目的应用包名和编译使用的keystore,可由签名工具生成一个32位的md5串,在调试的手机上安装签名工具后,运行可生成应用签名串,绿色串即应用签名。签名工具下载地址。
获取MD5方式:
1.这里是微信官网提供的工具类,用于获取应用签名
2.keytool -v -list -keystore jks路径\文件名称.jks
在这里插入图片描述
上图的MD5就是微信需要的应用签名

根据JDK版本不同,有用户反馈这种方式获取不到MD5值,如下图,别急,看第三种方式。
在这里插入图片描述
3.找到AS工具,Gradle->app->Tasks->android->signingReport
在这里插入图片描述
在控制台可以找到你需要的MD5信息。

特别注意点,MD5值必须保证是全小写,并且没有“:”符号

2.下载SDK,把SDK放到项目的libs里面即可
在这里插入图片描述
2.1)统一下单,生成支付订单

  /**
     * 微信支付
     *
     * @param context
     */
    public static void wechatPay(Context context, String appKey, String partnerId, String prepayId, String noncestr, String timeStamp, String sign) {
        IWXAPI api = WXAPIFactory.createWXAPI(context, null);
        PayReq request = new PayReq();
        request.appId = appKey;//微信开放平台审核通过的应用APPID
        request.partnerId = partnerId;//微信支付分配的商户号(服务端提供)
        request.prepayId = prepayId;//微信返回的支付交易会话ID(服务端提供)
        request.packageValue = "Sign=WXPay";//暂填写固定值Sign=WXPay
        request.nonceStr = noncestr;//随机字符串,不长于32位。推荐随机
        request.timeStamp = timeStamp;//时间戳,请见接口规则-参数规定
        request.sign = sign;//签名(服务端提供)

        api.registerApp(WECHAT_APPID);
        api.sendReq(request);

    }

2.2)监听支付过程

public class WXPayPamentResultActivity extend Activity implements IWXAPIEventHandler {

    private static final String TAG = "MicroMsg.SDKSample.WXPayEntryActivity";
    @Bind(R.id.wechat_pay_text)
    TextView wechatPayText;

    private IWXAPI api;
    private final String WECHAT_APP_ID = Constants.WECHAT_APP_ID;
    private String messageStr;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wechat_pay);
        ButterKnife.bind(this);
        api = WXAPIFactory.createWXAPI(this, WECHAT_APP_ID);
        api.registerApp(WECHAT_APP_ID);
        api.handleIntent(getIntent(), this);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }

    @Override
    public void onReq(BaseReq req) {

    }

    @Override
    public void onResp(BaseResp resp) {
        switch (resp.getType()) {
            case ConstantsAPI.COMMAND_PAY_BY_WX:
                switch (resp.errCode) {
                    case 0://支付成功
                        messageStr = "支付成功";
                        break;
                    case -1://错误
                        messageStr = "支付失败,请重试";
                        break;
                    case -2://用户取消
                        messageStr = "支付取消";
                        break;
                }
                break;
        }
        wechatPayText.setText(messageStr);
                                Toast.makeText(this, messageStr, Toast.LENGTH_SHORT).show();
                        finish();
    }
}

如果你的配置都没有问题,到这里也就完成支付流程了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值