公司项目中需要支付功能,现在支付宝,微信支付很方便,也很多人使用,因此,他们是首选。在此记录一下支付宝集成过程,下期为微信支付,敬请期待
首先去支付宝官网下载其最新的Android SDK的集成Dmeo
支付宝
选择SDK& Dmeo进行下载
将支付宝jar包添加项目中
alipaysdk - 20160516。jar
/* * *完整的符合支付宝参数规范的订单信息 */最终字符串payInfo=orderInfo +”,标志=\”“+ +”标志\“,”+ getSignType (); Runnable payRunnable=new Runnable () { @Override 公共空间run () {//构造PayTask对象 PayTask支付宝=new PayTask (PayDemoActivity.this);//调用支付接口,获取支付结果 字符串的结果=支付宝。支付(payInfo,真实); 消息味精=新消息(); 味精。什么=SDK_PAY_FLAG; 味精。obj=结果; mHandler.sendMessage(味精); } };//必须异步调用 线程payThread=新线程(payRunnable); payThread.start (); >之前
注意,我们需要异步发支付请求。可以看到他仅仅需要我们传递好参数
完整的符合支付宝参数规范的订单信息
这一步,我公司由服务器返回已经处理好的秘钥,我直接传递给支付宝即可
代码如下:
合作伙伴=" 2088101568358171 ",seller_id=皒xx@alipay.com”, out_trade_no=?819145412 - 6177”,主题=安馐浴?身体=安馐圆馐浴?total_fee=" 0.01 ", notify_url=" http://notify.msp.hk/notify.htm ",服务=癿obile.securitypay.pay”, payment_type=?”, _input_charset=皍tf - 8”, it_b_pay=" 30米,标志=發BBK % 2 f0w5loajrmrji7dugeqnjihqbidr13gova5r3tgibnqv231yc1nksldw % 2 ba3jnfhxoxuet6xnnhtn7ve % 2 becoro1o % 2 br1kuglrqezmtg5jmjie2pbjm % 2 f3kb % 2 fugkpg % 2 bwyqyi51 % 2 bha3ybbvzhvqbyvebqk % 2 bh8muyb7gm1hxws9k4 % 3 d”, sign_type=癛SA”
请求后,我们讲获得返回值结果
代码如下:
resultStatus={9000};备忘录={};结果={伙伴=?088101568358171”,seller_id=皒xx@alipay.com”, out_trade_no=?819145412 - 6177”,主题=安馐浴?身体=安馐圆馐浴?total_fee=" 0.01 ", notify_url=" http://notify.msp.hk/notify.htm ",服务=癿obile.securitypay.pay”, payment_type=?”, _input_charset=皍tf - 8”, it_b_pay=?0米”,成功=" true ", sign_type=癛SA”,标志=癶kFZr + zE9499nuqDNLZEF7W75RFFPsly876QuRSeN8WMaUgcdR00IKy5ZyBJ4eldhoJ/2 zghqrd4e2g2mnjs3ae + HCLiBXrPDNdLKCZgSOIqmv46TfPTEqopYfhs + o5fZzXxt34fwdrzN4mX6S13cr3UwmEV4L3Ffir/02 rbvtu="}
<强>错误码强>
-
<李> 9000→李订单支付成功>
<李> 8000→李正在处理中>
<李> 4000→李订单支付失败>
<李> 6001→李用户中途取消>
<李> 6002→网络连接出错李>
<强>回调处理强>
@SuppressLint (“HandlerLeak”) 私人处理程序mHandler=new处理程序(){ @SuppressWarnings(未使用) 公共空间handleMessage(消息味精){ 开关(msg.what) { 案例SDK_PAY_FLAG: { PayResult PayResult=new PayResult((字符串)msg.obj);/* * *同步返回的结果必须放置到服务端进行验证(验证的规则请看https://doc.open.alipay.com/doc2/* detail.htm& # 63; spm=0.0.0.0.xdvAU6& treeId=59,正如=103665, * docType=1)建议商户依赖异步通知 */字符串resultInfo=payResult.getResult();//同步返回需要验证的信息 字符串resultStatus=payResult.getResultStatus ();//判断resultStatus为“9000”则代表支付成功,具体状态码代表含义可参考接口文档 如果(TextUtils。equals (resultStatus, " 9000 ")) { Toast.makeText (PayDemoActivity。这支付成功”,Toast.LENGTH_SHORT),告诉(); 其他}{//判断resultStatus为非“9000”则代表可能支付失败//?000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态) 如果(TextUtils。equals (resultStatus, " 8000 ")) { Toast.makeText (PayDemoActivity。这支付结果确认中”,Toast.LENGTH_SHORT),告诉(); 其他}{//其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误 Toast.makeText (PayDemoActivity。这支付失败”,Toast.LENGTH_SHORT),告诉(); } } 打破; } 默认值: 打破; } }; };Android集成支付宝支付功能示例