支付宝支付
android端
开发工具eclise(选择性与服务器交互)
jar包:alipaySdk-20170710.jar
注意事项
1、对secret_key_tools_RSA_win工具的使用
2、第一次注册需要向合作商配置公钥,项目配置PKCS8/1024,PKCS8/2048,合作商配置公钥
3、签名的使用,要配合API拼写对象,API网址如下https://doc.open.alipay.com/docs/doc.htm?docType=1&articleId=106118
重要代码如下
/** 支付宝支付业务:入参app_id */
public static final String APPID = "201XX629XXXXX001";
/** 支付宝账户登录授权业务:入参pid值 */
public static final String PID = "208XX219XXXXX569";
/** 支付宝账户登录授权业务:入参target_id值 */
public static final String TARGET_ID = "支付宝帐号";
/** 商户私钥,pkcs8格式 */
/** 如下私钥,RSA2_PRIVATE 或者 RSA_PRIVATE 只需要填入一个 */
/** 如果商户两个都设置了,优先使用 RSA2_PRIVATE */
/** RSA2_PRIVATE 可以保证商户交易在更加安全的环境下进行,建议使用 RSA2_PRIVATE */
/** 获取 RSA2_PRIVATE,建议使用支付宝提供的公私钥生成工具生成, */
/** 工具地址:https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=106097&docType=1 */
public static final String RSA2_PRIVATE ="";
public static final String RSA_PRIVATE = "xWBdnIeTtXF2Mcc5iEqnj54I7FMGLLhBnxaE5Atr0u1Jbfijny69B。。。。很多";
IONIC端
开发工具Sublime(必须与服务器交互)
1、添加插件 https://github.com/hhjjj1010/cordova-plugin-alipay-v2
2、添加事件
var payInfo = "charset=utf-8&biz_content=%7B%22timeout_express%22%3A%2230m%22%2C%22product_code%22%3A%22QXXXXXXXXXXXXXXXXXXXXXX2BD3SqTV1AujE8cWZzaqFsiInoBzbfd7ohROrFxYLG1MSysGk%2B6n4Dg%3D%3D";
// 第二步:调用支付插件
cordova.plugins.alipay.payment(payInfo,function success(e){
alert(e.result)
},function error(e){
alert(e.result)
});
注意事项
1、payInfo从服务器获取
2、返回的e.result要传给服务器
服务端
开发工具Eclipse
jar包:alipay-sdk-java20170615110434.jar,commons-logging-1.1.1.jar
所需工具类:Base64.java,OrderInfoUtil2_0.java,SignUtils.java
主要代码如下
public static void main(String[] args) throws AlipayApiException {
/** 支付宝支付业务:入参app_id */
final String APPID = "2017XXXX075XXXX1";
/** 支付宝账户登录授权业务:入参pid值 */
final String PID = "";
/** 支付宝账户登录授权业务:入参target_id值 */
final String TARGET_ID = "20886XXXX1XXXX69";
String RSA2_PRIVATE = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDTfcE5KZOfmtHpsF2JUjBJTvNwcM2t2N8GVSzcp/ssTsOXP0C1d6P9VS6tt4K/VnXDoxzoxMdLzldryi8DOro6TeDMwH7K9pDRGcZVvv很多";
Map<String, String> params = OrderInfoUtil2_0.buildOrderParamMap(APPID,
true);
String orderParam = OrderInfoUtil2_0.buildOrderParam(params);
String privateKey = RSA2_PRIVATE;
String sign = OrderInfoUtil2_0.getSign(params, privateKey, true);
final String orderInfo = orderParam + "&" + sign;
System.out.println(orderInfo);
}
注意事项
1、orderInfo为最后生成的串,IONIC/Android客户端要从服务器获取该串
2、需要接受客户端返回的result对象,判断是否交易完成