Android开源:Android-Pay - 两行三行代码实现微信和支付宝支付
adsads123
8年前
<h2>Android-Pay</h2> <p>支持微信和支付宝两种主流支付的集成库, 两行代码实现微信支付, 三行代码实现支付宝支付</p> <h2>引入</h2> <h3>gradle</h3> <p>对应的项目中的build.gradle文件添加依赖:</p> <pre> <code class="language-java">dependencies { //添加支付库 compile 'io.github.mayubao:pay_library:1.0.0' }</code></pre> <h3>maven</h3> <pre> <code class="language-java"><dependency> <groupId>io.github.mayubao</groupId> <artifactId>pay_library</artifactId> <version>1.0.0</version> <type>pom</type> </dependency></code></pre> <h2>使用</h2> <h3>微信支付使用</h3> <pre> <code class="language-java">//1.创建微信支付请求 WechatPayReq wechatPayReq = new WechatPayReq.Builder() .with(this) //activity实例 .setAppId(appid) //微信支付AppID .setPartnerId(partnerid)//微信支付商户号 .setPrepayId(prepayid)//预支付码 // .setPackageValue(wechatPayReq.get)//"Sign=WXPay" .setNonceStr(noncestr) .setTimeStamp(timestamp)//时间戳 .setSign(sign)//签名 .create(); //2.发送微信支付请求 PayAPI.getInstance().sendPayRequest(wechatPayReq); //关于微信支付的回调 //wechatPayReq.setOnWechatPayListener(new OnWechatPayListener);</code></pre> <p>注意:这里没有金额设置,金额的信息已经包含在预支付码prepayid了。</p> <h3>支付宝支付使用</h3> <pre> <code class="language-java">//1.创建支付宝支付配置 AliPayAPI.Config config = new AliPayAPI.Config.Builder() .setRsaPrivate(rsa_private) //设置私钥 (商户私钥,pkcs8格式) .setRsaPublic(rsa_public)//设置公钥(// 支付宝公钥) .setPartner(partner) //设置商户 .setSeller(seller) //设置商户收款账号 .create(); //2.创建支付宝支付请求 AliPayReq aliPayReq = new AliPayReq.Builder() .with(activity)//Activity实例 .apply(config)//支付宝支付通用配置 .setOutTradeNo(outTradeNo)//设置唯一订单号 .setPrice(price)//设置订单价格 .setSubject(orderSubject)//设置订单标题 .setBody(orderBody)//设置订单内容 订单详情 .setCallbackUrl(callbackUrl)//设置回调地址 .create()// .setOnAliPayListener(null);// //3.发送支付宝支付请求 PayAPI.getInstance().sendPayRequest(aliPayReq); //关于支付宝支付的回调 //aliPayReq.setOnAliPayListener(new OnAliPayListener);</code></pre> <h2>混淆</h2> <pre> <code class="language-java">#pay_library -dontwarn io.github.mayubao.pay_library.** -keep class io.github.mayubao.pay_library.** {*;} #wechat pay -dontwarn com.tencent.** -keep class com.tencent.** {*;} #alipay -dontwarn com.alipay.** -keep class com.alipay.** {*;} -dontwarn com.ta.utdid2.** -keep class com.ta.utdid2.** {*;} -dontwarn com.ut.device.** -keep class com.ut.device.** {*;} -dontwarn org.json.alipay.** -keep class corg.json.alipay.** {*;}</code></pre> <h2>文档</h2> <h3>微信支付官方文档 支付流程</h3> <p><a href="/misc/goto?guid=4959739851267729000" rel="nofollow,noindex">https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5</a></p> <h3>支付宝支付官方文档 支付流程</h3> <p><a href="https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.sdGXaH&treeId=204&articleId=105296&docType=1" rel="nofollow,noindex">https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.sdGXaH&treeId=204&articleId=105296&docType=1</a></p> <h2>注意</h2> <h3>微信支付</h3> <ul> <li> <p>微信支付必须要在 <strong>正式签名</strong> 和 <strong>正确包名</strong> 的应用中才能成功调起。(**重点)</p> <p>即商户在微信开放平台申请开发应用后对应包名和对应签名的应用才能成功调起。 详情请参考微信支付的开发流程文档。</p> <p><a href="/misc/goto?guid=4959739851267729000" rel="nofollow,noindex">https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5</a></p> </li> <li> <p>微信支付API没有在客户端显示的设置回调,回调是在Server端设置的。(与支付宝支付的区别,支付宝的回调是在客户端设置的)</p> </li> </ul> <h3>支付宝支付</h3> <ul> <li> <p>支付宝支付为了保证交易双方的身份和数据安全, 需要配置双方密钥。</p> <p>详情请参考支付宝支付的密钥处理体系文档。</p> <p><a href="https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.1wPnBT&treeId=204&articleId=106079&docType=1" rel="nofollow,noindex">https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.1wPnBT&treeId=204&articleId=106079&docType=1</a></p> </li> </ul> <h2> </h2> <p> </p> <p> </p> <p> </p>