# 支付SDK **Repository Path**: bitter_2014/pay_sdk ## Basic Information - **Project Name**: 支付SDK - **Description**: 方便集成支付宝,微信,银联的sdk - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-06-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 支付组件 简要说明 该组件为封装了 微信,支付宝,银联支付, 一键快速集成,几行代码即可集成 微信,支付宝,银联支付。 # 测试账号: 1、银联支付: 提供测试使用卡号、手机号信息(此类信息仅供测试,不会发生正式交易) 招商银行借记卡:6226090000000048 手机号:18100000000 密码:111101 短信验证码:123456(先点获取验证码之后再输入) 证件类型:01身份证 证件号:510265790128303 姓名:张三 华夏银行贷记卡:6226388000000095 手机号:18100000000 cvn2:248 有效期:1219 短信验证码:123456(先点获取验证码之后再输入) 证件类型:01身份证 证件号:510265790128303 姓名:张三 ------------------------------------ ## 接入指南: 1、导入libSdk 依赖工程 3、配置 AndroidManifest文件(配置内容,请看下文,此处支持 两种方式来配置 第三方支付 参数【①可以在AndroidManifest 对应的meta-data 配置;②支持在代码中配置;选其一即可】) 4、项目中实际使用支付:具体使用看下文 ---> 调起支付 。 ------ 请配置正确的参数,否则支付宝和微信 会出现无法调起的情况。 ---- # //配置 AndroidManifest(只需配置如下参数) //如果是 超过10位数字,要在前边加 ,Eg: \0223987667567887653 # // 初始化支付组件 PayAgent payAgent = PayAgent.getInstance(); payAgent.setDebug(true); // 代码初始化 参数, 此处针对场景,所有参数有 自己app server保管的时候,动态的支付配置下发参数 payAgent.initAliPayKeys(partnerId, sellerId, privateKey, publicKey); payAgent.initWxPayKeys(appId, mchId, appKey) // 初始化 银联支付 所需的 验签 参数 //payAgent.initUpPayKeys(PublicKeyPMModulus, publicExponent, PublicKeyProductModulus); // 代码动态初始化为 可选 payAgent.initPay(this); ## # // 支付宝支付: String str = "alipay_sdk=alipay-sdk-java-dynamicVersionNo" + "&app_id=2017021705******" + "&biz_content=%7B%22body%22%3A%22%E6%94%AF%E4%BB%98%22%2C%22out_trade_no%22%3A%22DEPOSIT20180627173658161WOevJdXF%22%2C%22product_code%22%3A%22NOProduct%22%2C%22subject%22%3A%22%E6%AD%A3%E5%9C%A8%E6%94%AF%E4%BB%98%22%2C%22timeout_express%22%3A%2230m%22%2C%22total_amount%22%3A%220.01%22%7D" + "&charset=utf-8" + "&format=json" + "&method=alipay.trade.app.pay" + "¬ify_url=http%3A%2F%2F118.178.240.207%3A9090%2Fmobility%2Falipay%2Fnotify.do" + "&sign=sYDE9vFyJTs5o***********gcTiY8Kywwu3GQR%2F8Ajc9ez8XDD3A3gbaJ3LA1DnLiTDth9fbrecICs%2Fph9DlCoGTV4Oe767c%2BO7vMhZUmNJZ9Ak0D7s3MpZgZQ9syPqnsnffitKavtnhTT%2FZPM2xPS3ey%2FFYvMulsW8NFJPtmPCaA0NNV8Mrtz5seWK%2FgXtwxGnu5pskqU8h5PGKlhRw4peMXlR9Zan8CENL3cOsR74qB8NDOv9PEqnXHvNSEfq9SFz8Yn6K7D3ogNryHRKPbRXTdoPxCHChPowBd%2FgcYzOubZVbfrW00OyrgIFkHG7%2BQ%3D%3D" + "&sign_type=RSA2" + "×tamp=2018-06-27+17%3A36%3A58" + "&version=1.0"; PayInfo payInfo = new PayInfo(); payInfo.setZfbOrderInfoString(str); testPay(PayAgent.PayType.ALIPAY, payInfo); # # // 微信支付: PayInfo info = new PayInfo(); info.setWxApp_id("wxf2e9d0**********"); info.setWxPartnerid("14********"); info.setWxPackageValue("Sign=WXPay"); info.setWxPrepayId("wx271736331597940e3cd4************"); info.setWxNonceStr("uTZA0Us0d0ns"); info.setWxTimeStamp("153009****"); info.setWxSign("95338D4D87287DAFCDBA8***********"); testPay(PayAgent.PayType.WECHATPAY, info); # # // 调起支付: PayAgent.getInstance().onPay(payType, this, payInfo, new OnPayListener() { @Override public void onStartPay(PayAgent.PayType payType) { progressDialog.setTitle("加载中..."); progressDialog.show(); } @Override public void onPaySuccess(PayAgent.PayType payType, String orderNo, Object data) { Toast.makeText(MainActivity.this, "支付成功!", Toast.LENGTH_SHORT).show(); String dataStr = (payType == PayAgent.PayType.WECHATPAY?((Bundle)data).toString():(String)data); Log.e(getClass().getName(), "orderNo:" + orderNo + "data:" + dataStr); if (null != progressDialog) { progressDialog.dismiss(); } } @Override public void onPayFail(PayAgent.PayType payType, String code, String msg) { Toast.makeText(MainActivity.this, "code:" + code + "msg:" + msg, Toast.LENGTH_SHORT).show(); Log.e(getClass().getName(), "code:" + code + "msg:" + msg); if (null != progressDialog) { progressDialog.dismiss(); } } }); # ## 支付参数说明: PayType: 支付的支付方式,目前支持: - 1、PayAgent.PayType.WECHATPAY(微信支付); - 2、PayAgent.PayType.ALIPAY(支付宝); - 3、PayAgent.PayType.UPPAY(银联)。(开发调试中) Activity: 调起支付的 Activity PayInfo: /** 微信支付appid */ private String wxApp_id; /** 微信支付partnerid */ private String wxPartnerid; /** 微信支付sign */ private String wxSign; /** 微信支付packageValue */ private String wxPackageValue; /** 微信支付nonceStr */ private String wxNonceStr; /** 微信支付timeStamp */ private String wxTimeStamp; /** 微信支付prepayId */ private String wxPrepayId; /** 支付宝支付订单信息字符串 */ private String zfbOrderInfoString; /** 银联支付订单号 */ private String ylOrderNo; OnPayListener: 支付监听器: - onStartPay(PayType payType) 开始支付,可以在此做 支付前准备提示,payType为支付方式 - onPaySuccess(PayType payType, String orderNo, Object data); 支付成功,payType为支付方式,orderNo为订单号,data为第三方返回数据 - onPayFail(PayType payType, String code, String msg); 支付失败,payType为支付方式,code和msg 均为第三方原样返回 # 配置第三方参数说明: - 1、支付宝: - 2、微信: - 3、银联: ----------------------------------------------------------------------------------------------------------------------------------------------- # 注意: - 1、支付宝支付,调用支付宝时, 把把必要的参数让服务器返回,然后字符串放到payInfo中的zfbOrderInfoString字段 - 2、微信支付,所有wx开头的字段信息为必须 - 3、银联支付时,orderNo 为必须项(测试中...) - 4、关于支付后,通知回调,只有支付宝是 在客户端手动设置,其余都是在 后台配置。 ## 注意事项: - 1、当测试时,可以使用Debug模式,开启方式为: PayAgent payAgent = PayAgent.getInstance(); payAgent.setDebug(true); - 2、调试模式(非正式环境,目前只有 银联): PayAgent payAgent = PayAgent.getInstance(); payAgent.setOnlieMode(false); # 版本說明: - 1、银联支付:3.3.2 - 2、支付宝:20180601 - 3、微信:without-mta:1.0.2 # 更新日志: - 2018年6月26日 更新: - 1、 - 2、 ## 其他说明: - 银联支付平台官网:https://open.unionpay.com/ajweb/product/detail?id=3 - 支付宝平台官网:https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1 - 微信支付平台官网:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317784&token=&lang=zh_CN - https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1