订单参数: alipay_sdk=alipay-sdk-java-dynamicVersionNo&app_id=2021001136690108&biz_content=%7B%22out_trade_no%22%3A%221%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%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%2Fzuimeizjz.com%2Fpay%2Fasync&sign=cNTinlSb0qlwTaLi4fMhMR6VtIopl7olJk94XqQemXs3GxgKCy1SF%2BqGy99U%2Fjrx%2F%2FSgRQYWakY3sNv2aqZjTgmC84qBYIyQ5JKBPc%2FoF1FPkS2RweIsrhrkyCS1lZ%2FC2dSrEdhxsWONWB74mq3gskllVvEoN9xdpsfw%2BcDiD1Q%2B2S8pMAHhBBK062k6u%2B4s22zHmp8PO%2FCmdYN%2BkHLUAP0Xh7G0XGVxMte4IXu%2Bpl2Zc57YAm7J0OJWvZFtFIz4Z3UxMJWXmsTQw3NkzI8PjJLr%2Botvmo9%2Frm%2BmrsxFnK1RLaYSasUgi8Om5%2FenJuTNC9yVvaUu0rEeXmUuRTGixw%3D%3D&sign_type=RSA2×tamp=2020-03-15+15%3A54%3A36&version=1.0
使用支付宝SDK实现移动端APP支付功能,SDK中提供的有一个调用方法,如果订单信息参数有问题就会报错交易订单处理失败:
/** * 支付宝支付业务 * * @param v */ public void payV2(View v) { if (TextUtils.isEmpty(APPID) || (TextUtils.isEmpty(RSA2_PRIVATE) && TextUtils.isEmpty(RSA_PRIVATE))) { new AlertDialog.Builder(this).setTitle("警告").setMessage("需要配置APPID | RSA_PRIVATE") .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialoginterface, int i) { // finish(); } }).show(); return; }
/** * 这里只是为了方便直接向商户展示支付宝的整个支付流程;所以Demo中加签过程直接放在客户端完成; * 真实App里,privateKey等数据严禁放在客户端,加签过程务必要放在服务端完成; * 防止商户私密数据泄露,造成不必要的资金损失,及面临各种安全风险; * * orderInfo的获取必须来自服务端; */ boolean rsa2 = (RSA2_PRIVATE.length() > 0); Map<String, String> params = OrderInfoUtil2_0.buildOrderParamMap(APPID, rsa2); String orderParam = OrderInfoUtil2_0.buildOrderParam(params);
String privateKey = rsa2 ? RSA2_PRIVATE : RSA_PRIVATE; String sign = OrderInfoUtil2_0.getSign(params, privateKey, rsa2); final String orderInfo = orderParam + "&" + sign;
Runnable payRunnable = new Runnable() {
@Override
public void run() {
PayTask alipay = new PayTask(PayDemoActivity.this);
Map<String, String> result = alipay.payV2(orderInfo, true);
Log.i("msp", result.toString());
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
msg.obj = result;
mHandler.sendMessage(msg);
}
};
Thread payThread = new Thread(payRunnable); payThread.start(); }
里面的orderInfo是一长串的支付信息,可以APP端生成,也能从后台获取,为了安全期间还是要从后台获取,我这边从后台获取的这一字符串为:
alipay_sdk=alipay-sdk-java-dynamicVersionNo& app_id=20171226xxxxxxxx& biz_content=业务请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档& charset=UTF-8& format=json& method=alipay.trade.app.pay& sign=商户请求参数的签名串,详见签名& timestamp=2018-06-25+16%3A40%3A50& version=1.0
直接添加到方法中使用就能调起支付了!如果感觉自己的参数有问题可以以此对照一下(注意字符串的格式)。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。