# 支付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