Android-Pay 支持微信和支付宝两种主流支付的集成库, 两行代码实现微信支付, 三行代码实现支付宝支付

引入

gradle

对应的项目中的build.gradle文件添加依赖:

dependencies {
    //添加支付库
    compile 'io.github.mayubao:pay_library:1.0.0'
}

maven

<dependency>
  <groupId>io.github.mayubao</groupId>
  <artifactId>pay_library</artifactId>
  <version>1.0.0</version>
  <type>pom</type>
</dependency>

使用

微信支付使用

        //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);


注意:这里没有金额设置,金额的信息已经包含在预支付码prepayid了。

支付宝支付使用

        //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);

混淆

#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.** {*;}

文档

微信支付官方文档 支付流程

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5

支付宝支付官方文档 支付流程

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.sdGXaH&treeId=204&articleId=105296&docType=1

注意

微信支付

  • 微信支付必须要在正式签名正确包名的应用中才能成功调起。(**重点)

    即商户在微信开放平台申请开发应用后对应包名和对应签名的应用才能成功调起。
    详情请参考微信支付的开发流程文档。

    https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5

  • 微信支付API没有在客户端显示的设置回调,回调是在Server端设置的。(与支付宝支付的区别,支付宝的回调是在客户端设置的)

支付宝支付

Demo clone地址

  https://git.oschina.net/mayubao2015/Android-Pay.git

  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的Spring Boot应用程序,使用weixin-java-pay实现微信支付的沙箱环境。 首先,需要在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-pay</artifactId> <version>3.4.0</version> </dependency> ``` 然后,创建一个Spring Boot应用程序,并添加以下配置: ```properties # 微信支付配置 wxpay.appId=xxx wxpay.mchId=xxx wxpay.mchKey=xxx wxpay.keyPath=classpath:wxpay/apiclient_cert.p12 wxpay.notifyUrl=http://localhost:8080/pay/notify # 沙箱环境配置 wxpay.sandbox=true wxpay.sandboxSignKey=xxx ``` 在这里,我们配置了微信支付的基本信息,包括appId、mchId、mchKey、keyPath和notifyUrl,以及沙箱环境的配置,包括sandbox和sandboxSignKey。 接下来,创建一个PayController类,处理支付请求和回调: ```java @RestController @RequestMapping("/pay") public class PayController { @Autowired private WxPayService wxPayService; @PostMapping("/unifiedOrder") public WxPayUnifiedOrderResult unifiedOrder(@RequestBody PayRequest payRequest) throws WxPayException { WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest(); request.setBody(payRequest.getBody()); request.setOutTradeNo(payRequest.getOutTradeNo()); request.setTotalFee(BaseWxPayRequest.yuanToFen(payRequest.getTotalFee())); request.setSpbillCreateIp(payRequest.getSpbillCreateIp()); request.setNotifyUrl(wxPayService.getConfig().getNotifyUrl()); request.setTradeType(WxPayConstants.TradeType.JSAPI); request.setOpenid(payRequest.getOpenid()); return wxPayService.unifiedOrder(request); } @PostMapping("/notify") public String notify(@RequestBody String xmlData) throws WxPayException { WxPayOrderNotifyResult result = wxPayService.parseOrderNotifyResult(xmlData); // 处理支付结果 return WxPayNotifyResponse.success("OK"); } } ``` 在这里,我们注入了WxPayService并使用它来处理支付请求和回调。在unifiedOrder方法中,我们创建了一个WxPayUnifiedOrderRequest对象,并设置了必要的参数,最后使用wxPayService.unifiedOrder方法来发起支付请求。在notify方法中,我们解析了微信支付回调的XML数据,并处理支付结果。 最后,创建一个PayRequest类,用于接收支付请求参数: ```java public class PayRequest { private String body; private String outTradeNo; private String totalFee; private String spbillCreateIp; private String openid; // getter和setter方法省略 } ``` 这是一个简单的Spring Boot应用程序,使用weixin-java-pay实现微信支付的沙箱环境。在实际使用中,您需要根据自己的业务需求进行适当的修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值