只要采用Builder模式
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.RelinRan:AndroidPay:1.0.11'
}
AndroidPay.arr
android {
....
repositories {
flatDir {
dirs 'libs'
}
}
}
dependencies {
implementation(name: 'AndroidPay', ext: 'aar')
}
public class WXPayEntryActivity extends WeChatPayActivity {}
WeChatPay.Builder builder = new WeChatPay.Builder(this);
builder.appId("xxxx");
builder.partnerId("xxx");
builder.prepayId("xxx");
builder.nonceStr("xxxx");
builder.timeStamp("xxxx");
builder.packageValue("Sign=WXPay");
builder.sign("xxxx");
builder.listener(new OnWeChatPayListener() {
@Override
public void onWeChatPay(int code,String msg) {
if(code==WeChatConstants.SUCCEED){//支付成功
}
if(code==WeChatConstants.CANCEL){//用户取消
}
if(code==WeChatConstants.FAILED){//支付失败
}
}
});
builder.extData(xxxxx);//支付提示文字
builder.build();
AliPay.Builder builder = new AliPay.Builder(this);
builder.orderInfo("xxxx");
builder.listener(new OnAliPayListener() {
/**
* 参数解释
*
* @param status 是结果码(类型为字符串)。
* 9000 订单支付成功
* 8000 正在处理中,支付结果未知(有可能已经支付成功),请查询商户订单列表中订单的支付状态
* 4000 订单支付失败
* 5000 重复请求
* 6001 用户中途取消
* 6002 网络连接出错
* 6004 支付结果未知(有可能已经支付成功),请查询商户订单列表中订单的支付状态
* 其它 其它支付错误
* @param json 是处理结果(类型为json结构字符串)
* out_trade_no String 是 64 商户网站唯一订单号 70501111111S001111119
* trade_no String 是 64 该交易在支付宝系统中的交易流水号。最长64位。 2014112400001000340011111118
* app_id String 是 32 支付宝分配给开发者的应用Id。 2014072300007148
* total_amount Price 是 9 该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 9.00
* seller_id String 是 16 收款支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字 2088111111116894
* msg String 是 16 处理结果的描述,信息来自于code返回结果的描述 success
* charset String 是 16 编码格式 utf-8
* timestamp String 是 32 时间 2016-10-11 17:43:36
* code String 是 16 结果码 具体见
* @param description description是描述信息(类型为字符串)
*/
@Override
public void onAliPay(String status, String json, String description) {
if(status.equals("9000")){//成功
}
else if(status.equals("6001")){//用户取消
}
else{//支付失败
}
}
});
builder.loading(true);
builder.build();
UUPay uuPay = new UUPay(this);
uuPay.pay(tn,UUPay.PayMode.FORM);
public class WXEntryActivity extends WeChatAuthActivity {
}
WeChatLogin.Builder builder = new WeChatLogin.Builder(context);
builder.appId("xxx");
builder.appSecret("xxx");
builder.listener(new OnWXLoginListener() {
@Override
public void onWeChatLogin(int code, String msg, WeChatUser user) {
if (code==WeChatConstants.LOADING){//登录中
}
if (code==WeChatConstants.SUCCEED){//登录成功
}
if (code==WeChatConstants.CANCEL){//用户取消登录
}
if (code==WeChatConstants.AUTH_DENIED){//授权取消
}
}
});
builder.build();
AliLogin.Builder builder = new AliLogin.Builder(this);
builder.appId("xxxxx");
builder.scheme("xxxxxx");//必须跟AndroidManifest.xml配置一致
builder.listener(new OnAliLoginListener() {
@Override
public void onAliLogin(int code, String memo, AliUser aliUser) {
if (code == AliLogin.OK) {
//处理你的逻辑,极简版本只有aliUser.getAuthCode()
}
}
});
builder.build();
/**
* 构建授权信息
*
* @param privateKey 私钥(https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=106097&docType=1)
* @param pid 签约的支付宝账号对应的支付宝唯一用户号,以2088开头的16位纯数字组成
* @param app_id支付宝分配给开发者的应用ID
* @param target_id 商户标识该次用户授权请求的ID,该值在商户端应保持唯一
* @param rsa2 签名类型是否是RSA2,否:RSA
* @return
*/
public static String buildAuthInfo(String privateKey, String pid, String app_id, String target_id, boolean rsa2)
AliLogin.Builder builder = new AliLogin.Builder(this);
builder.authInfo("xxxxx");
builder.listener(new OnAliLoginListener() {
@Override
public void onAliLogin(int code, String memo, AliUser aliUser) {
if (code == AliLogin.OK) {
//处理你的逻辑,完整版本有aliUser.getUserId()和aliUser.getAliPayOpenId()
}
}
});
builder.build();
public class WXEntryActivity extends WeChatAuthActivity {}
因为根据官方文档集成,其中参数名字也跟官方文档一致,目前只是加了一个thumUrl和imageUrl不跟官方文档一致,为了方便缩略图和图片分享使用网络图片;
其他的参数参考官方文档
WeChatShare.Builder builder = new WeChatShare.Builder(getContext());
builder.type(WeChatShare.TYPE_IMAGE);
builder.appId(Constants.WE_CHAT_APP_ID);
builder.scene(WeChatShare.SCENE_SESSION);
builder.imagePath("本地图片地址");//或者builder.imageUrl("http://xxxxxx");
builder.listener(new OnWeChatShareListener() {
@Override
public void onWeChatShare(int code, String msg) {
//分享回调,官方目前取消了回调,不管是否正确分享都会进入。
}
});
builder.build();
WeChatShare.Builder builder = new WeChatShare.Builder(getContext());
builder.type(WeChatShare.TYPE_VIDEO);
builder.appId(Constants.WE_CHAT_APP_ID);
builder.scene(WeChatShare.SCENE_SESSION);
builder.title("标题");
builder.description("描述信息");
builder.thumbImage(bitmap);//或 builder.thumbUrl("http://xxxxxx"); 或builder.thumbData(byte[]);
builder.videoUrl("视频网络地址");
builder.listener(new OnWeChatShareListener() {
@Override
public void onWeChatShare(int code, String msg) {
//分享回调,官方目前取消了回调,不管是否正确分享都会进入。
if (code==WeChatConstants.SUCCEED){//成功
}
if (code==WeChatConstants.CANCEL){//取消
}
}
});
builder.build();
WeChatShare.Builder builder = new WeChatShare.Builder(getContext());
builder.type(WeChatShare.TYPE_WEB);
builder.appId(Constants.WE_CHAT_APP_ID);
builder.scene(WeChatShare.SCENE_SESSION);
builder.title("标题");
builder.description("描述信息");
//缩略图设置
builder.thumbImage(bitmap);//或 builder.thumbUrl("http://xxxxxx"); 或builder.thumbData(byte[]);
builder.webpageUrl("网络地址");
builder.listener(new OnWeChatShareListener() {
@Override
public void onWeChatShare(int code, String msg) {
//分享回调,官方目前取消了回调,不管是否正确分享都会进入。
if (code==WeChatConstants.SUCCEED){//成功
}
if (code==WeChatConstants.CANCEL){//取消
}
}
});
builder.build();
WeChatShare.Builder builder = new WeChatShare.Builder(getContext());
builder.type(WeChatShare.TYPE_MUSIC);
builder.appId(Constants.WE_CHAT_APP_ID);
builder.scene(WeChatShare.SCENE_SESSION);
builder.title("标题");
builder.description("描述信息");
//缩略图设置
builder.thumbImage(bitmap);//或 builder.thumbUrl("http://xxxxxx"); 或builder.thumbData(byte[]);
builder.musicUrl("网络地址");
builder.listener(new OnWeChatShareListener() {
@Override
public void onWeChatShare(int code, String msg) {
//分享回调,官方目前取消了回调,不管是否正确分享都会进入。
if (code==WeChatConstants.SUCCEED){//成功
}
if (code==WeChatConstants.CANCEL){//取消
}
}
});
builder.build();