支付宝支付怎么结款

支付宝支付总结
时间: 20:34:40
&&&& 阅读:1389
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
SDK接入总流程:检查是否有支付宝钱包,如果有则直接调取,没有安装快捷支付,安装后再,以后直接调取快捷支付,而不是支付宝钱包;1:前期配置准备工作(支付宝的资料没有放在官方网站里面,而是在支付宝开发文档论坛中,自己去查找获取)RSA密钥使用逻辑:商户在使用RSA签名方式的支付宝接口时,真正会用到的密钥是商户私钥与支付宝公钥。商户上传公钥给支付宝,支付宝把公钥给商户,是公钥互换的操作。这就使得商户使用自己的私钥做签名时,支付宝端会根据商户上传的公钥做验证签名。商户使用支付宝公钥做验证签名时,同理,也是因为支付宝用支付宝私钥做了签名。(1)获取公钥和私钥:RSA密钥生成命令生成RSA私钥openssl&genrsa -out rsa_private_key_samy.pem 1024生成RSA公钥openssl&rsa -in rsa_private_key_samy.pem -pubout -out rsa_public_key_samy.pem将RSA私钥转换成PKCS8格式openssl&pkcs8 -topk8 -inform PEM -in rsa_private_key_samy.pem -outform PEM -nocrypt(ps:这个在客户端本地用必须配置用PKCS8格式的,服务器端直接存放RSA公钥和私钥就可以啦)配置网站后台端:(2):把配置好的公私钥放入代码中集成:
&*&@description:
&*&&&&&&&&&&&&&&&请参考&Android平台安全支付服务(msp)应用开发接口(4.2&RSA算法签名)部分,并使用压缩包中的openssl&RSA密钥生成工具,生成一套RSA公私钥。
&*&&&&&&&&&&&&&&&这里签名时,只需要使用生成的RSA私钥。
&*&&&&&&&&&&&&&&&Note:&为安全起见,使用RSA私钥进行签名的操作过程,应该尽量放到商家服务器端去进行。
&*&@author&samy
&*&@date&日&下午12:00:55
public&final&class&Keys&{
&&&&//&合作身份者id,以2088开头的16位纯数字
&&&&public&static&final&String&DEFAULT_PARTNER&=&"******;
&&&&//&收款支付宝账号
&&&&public&static&final&String&DEFAULT_SELLER&=&"";
&&&&//&商户私钥,自助生成
&&&&public&static&final&String&PRIVATE&=&"*****MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAOXBQIVlU3ji6upHs6Qmh+upBmK2kJ9j8UViV07jhql9SBJnnUg28evTKop02vGrtkd2P0pxxbyME6Pp3klFblxM6fzicg3Vx1hVZAxzTB2mE0hSjtQ5gNzPs0DHTCFFcfooXkK8TqpncEWamMJ4ISd9gi+PPhmDIgc7Y7q8yBuxAgMBAAECgYAnajbSa6adR3h7hp932rBYql+REbbP0Upz18IYo4nXi8mQdrwRxnNMPKbAp/ljmkykB9IlyEze4rz/0sAym7mpwr3D4yi3ZSvA7TG7h4d+LcmCvgRNjl2UUj4719aBNN56xDN+740VI6pFNFObt/A3itg9XswctA/t4ANckNnq0QJBAPlVvxcFtjoTOR6hL7OLRjmnEMcG2tyHsydLxGcyFndAOrLhaHnk24LM/Oi81C/uEV9R7oEDOd0RiaB29fpoP3UCQQDr5YPWBSj0o4VE3Qfv7vrHTcMFNiY/9ioMiGitjnClWkN2WNPn1b5kDEFfQTt1fXD9kH8xfUI81MRf8ibegb/NAkB3hZssthg8jqp6/FmZf9ISIPvx7F9OB97hn3hu35vVXnzE8zjZ9dMkSI+UIbC1qTG6t9PVFG7Qgm+u9FfFyeNhAkAKO7OjZifnrOxMF3aPrwNMABCUukugfLJIRuabmNFEKw1AJgxTQ092EZ4IXtEQgLeVGF6cK/3im6xFKUEMZ/6FAkBGzmn/jabnMfpvi/sCSGudlKrDb778tcxUAbQZX3zwUn1LoZBAc0k6fqxtPHZIlbGLuvEGi1Yi1kRxqGbDMe32************************";
&&&&public&static&final&String&PUBLIC&=&"*******MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRAFljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQEB/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5KsiNG9zpgmLCUYuLkxpLQIDAQAB*******************";
}&&2:代码整合:(1):
& & & &&&!--&支付部分&--&
&&&&&&&&&&&activity
&&&&&&&&&&&&android:name="com.unionpay.uppay.PayActivity"
&&&&&&&&&&&&android:configChanges="orientation|keyboardHidden"
&&&&&&&&&&&&android:excludeFromRecents="true"
&&&&&&&&&&&&android:screenOrientation="portrait"
&&&&&&&&&&&&android:windowSoftInputMode="adjustResize"&&
&&&&&&&&&/activity&
&&&&&&&&&activity
&&&&&&&&&&&&android:name="com.alipay.android.app.sdk.WapPayActivity"
&&&&&&&&&&&&android:screenOrientation="portrait"&&
&&&&&&&&&/activity&&&ResourceMap 文件:这个文件必须放在package&com.alipay.android.app.lib;否则alipay.jar会反射找不到文件配置和支付宝加载的界面;&
&(2):& Handler&mHandler&=&new&Handler()&{
&&&&&&&&public&void&handleMessage(android.os.Message&msg)&{
&&&&&&&&&&&&Result&result&=&new&Result((String)&msg.obj);
&&&&&&&&&&&&switch&(msg.what)&{
&&&&&&&&&&&&&&&&case&RQF_LOGIN:
&&&&&&&&&&&&&&&&case&RQF_PAY:
&&&&&&&&&&&&&&&&&&&&Toast.makeText(ExternalPartnerAct.this,&result.parseResult(),&Toast.LENGTH_SHORT).show();
&&&&&&&&&&&&&&&&&&&&break;
&&&&&&&&&&&&}
&&&&&&&&};
& & };& && &&/**&&&&&*&@description:直接调取支付宝&&&&&*&@author&samy&&&&&*&@date&日&下午7:16:20&&&&&*/&&&&private&void&payByZFBLocal()&{&&&&final&String&orderInfo&=&Result.getNewOrderInfo(orderId,&shopItemBean.merchantName,&tempNeedPrice&&=&0&?&tempNeedPrice&+&""&:&(-tempNeedPrice)&+&"");&&&&&&&&new&Thread()&{&&&&&&&&&&&&public&void&run()&{&&&&&&&&&&&&&&&&AliPay&alipay&=&new&AliPay(aty,&mHandler);&&&&&&&&&&&&&&&&//&设置为沙箱模式,不设置默认为线上环境;从这里开始跳转到支付宝界面;运行完支付pay()后回调;&&&&&&&&&&&&&&&&//&alipay.setSandBox(true);&&&&&&&&&&&&&&&&String&result&=&alipay.pay(orderInfo);&&&&&&&&&&&&&&&&Message&msg&=&new&Message();&&&&&&&&&&&&&&&&msg.what&=&RQF_PAY;&&&&&&&&&&&&&&&&msg.obj&=&&&&&&&&&&&&&&&&&mHandler.sendMessage(msg);&&&&&&&&&&&&}&&&&&&&&}.start();&&&&}&&
&&&&&*&@description:封装起来有多处用到;
&&&&&*&@author&samy
&&&&&*&@date&日&下午12:10:45
&&&&public&static&String&getNewOrderInfo(String&out_trade_no,&String&subject,&String&total_fee)&{
&&&&&&&&StringBuilder&sb&=&new&StringBuilder();
&&&&&&&&sb.append("partner=\"");//&合作者身份ID
&&&&&&&&sb.append(Keys.DEFAULT_PARTNER);
&&&&&&&&sb.append("\"&out_trade_no=\"");//&商户网站唯一订单号
&&&&&&&&sb.append(out_trade_no);
&&&&&&&&sb.append("\"&subject=\"");//&商品名称
&&&&&&&&sb.append(subject);
&&&&&&&&//&sb.append("\"&body=\"");//&商品详情
&&&&&&&&//&sb.append("充100返5元");
&&&&&&&&sb.append("\"&total_fee=\"");//&总金额
&&&&&&&&sb.append(total_fee);
&&&&&&&&sb.append("\"?ify_url=\"");//&网址需要做URL编码;&异步通知;服务器异步通知页面路径;
&&&&&&&&//&sb.append(URLEncoder.encode("http://notify.java.jpxx.org/index.jsp"));
&&&&&&&&sb.append(URLEncoder.encode("/notify_url_client.jsp"));
&&&&&&&&sb.append("\"&service=\"mobile.securitypay.pay");//&接口名称&,固定值mobile.securitypay.pay
&&&&&&&&sb.append("\"&_input_charset=\"UTF-8");//&参数编码字符集
&&&&&&&&//&sb.append("\"&return_url=\"");
&&&&&&&&//&sb.append(URLEncoder.encode(""));
&&&&&&&&sb.append("\"&payment_type=\"1");//&支付类型;支付类型。默认值为:1(商品购买)
&&&&&&&&sb.append("\"&seller_id=\"");//&卖家支付宝账号
&&&&&&&&sb.append(Keys.DEFAULT_SELLER);
&&&&&&&&//&如果show_url值为空,可不传
&&&&&&&&//&sb.append("\"&show_url=\"");
&&&&&&&&sb.append("\"&it_b_pay=\"1m");//&支付超时&时间;
&&&&&&&&sb.append("\"");
&&&&&&&&String&sign&=&Rsa.sign(sb.toString(),&Keys.PRIVATE);
&&&&&&&&sign&=&URLEncoder.encode(sign);
&&&&&&&&StringBuffer&buffer&=&new&StringBuffer(sb);
&&&&&&&&buffer.append("&sign=\"");
&&&&&&&&buffer.append(sign);
&&&&&&&&buffer.append("\"&sign_type=\"RSA\"");//&签名;签名方式,签名类型,目前仅支持RSA
&&&&&&&&return&new&String(buffer);
&&&&}ps:参照部分:&@Override
&&&&public&void&onItemClick(AdapterView&?&&arg0,&View&arg1,&int&position,&long&arg3)&{
&&&&&&&&try&{
&&&&&&&&&&&&String&info&=&getNewOrderInfo(position);
&&&&&&&&&&&&String&sign&=&Rsa.sign(info,&Keys.PRIVATE);
&&&&&&&&&&&&sign&=&URLEncoder.encode(sign);
&&&&&&&&&&&&info&+=&"&sign=\""&+&sign&+&"\"&"&+&getSignType();//&签名;签名方式,签名类型,目前仅支持RSA
&&&&&&&&&&&&Log.i("ExternalPartner",&"start&pay");
&&&&&&&&&&&&Log.i("samy",&"info&=&"&+&info);
&&&&&&&&&&&&final&String&orderInfo&=&
&&&&&&&&&&&&new&Thread()&{
&&&&&&&&&&&&&&&&public&void&run()&{
&&&&&&&&&&&&&&&&&&&&AliPay&alipay&=&new&AliPay(ExternalPartnerAct.this,&mHandler);
&&&&&&&&&&&&&&&&&&&&//&设置为沙箱模式,不设置默认为线上环境;从这里开始跳转到支付宝界面;运行完支付pay()后回调;
&&&&&&&&&&&&&&&&&&&&//&alipay.setSandBox(true);
&&&&&&&&&&&&&&&&&&&&String&result&=&alipay.pay(orderInfo);
&&&&&&&&&&&&&&&&&&&&Log.i(TAG,&"result&=&"&+&result);
&&&&&&&&&&&&&&&&&&&&Message&msg&=&new&Message();
&&&&&&&&&&&&&&&&&&&&msg.what&=&RQF_PAY;
&&&&&&&&&&&&&&&&&&&&msg.obj&=&
&&&&&&&&&&&&&&&&&&&&mHandler.sendMessage(msg);
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&}.start();
&&&&&&&&catch&(Exception&ex)&{
&&&&&&&&&&&&ex.printStackTrace();
&&&&&&&&&&&&Toast.makeText(ExternalPartnerAct.this,&R.string.remote_call_failed,&Toast.LENGTH_SHORT).show();
&&&&}&&&&/**&&&&&*&@description:加载支付宝网页&&&&&*&@author&samy&&&&&*&@date&日&下午7:16:41&&&&&*/&&&&private&void&payByZFBWeb()&{&&&&&&&&//&KJHttp&kjHttp&=&GlobalApp.getKJHttp();&&&&&&&&KJStringParams&params&=&new&KJStringParams();&&&&&&&&params.put("trade_no",&orderId);&&&&&&&&params.put("subject",&shopItemBean.merchantName);&&&&&&&&params.put("total_fee",&tempNeedPrice&&=&0&?&tempNeedPrice&+&""&:&(-tempNeedPrice)&+&"");&&&&&&&&//&kjHttp.urlGet(UrlConstants.PAY_SUBMIT,&params,&null);//现不做回调处理;&&&&&&&&if&(params&!=&null)&{&&&&&&&&&&&&//&StringBuilder是用来组拼请求地址和参数&&&&&&&&&&&&StringBuilder&str&=&new&StringBuilder(UrlConstants.PAY_SUBMIT);&&&&&&&&&&&&//&str.append("?").append(params.toString());&&&&&&&&&&&&str.append("?");&&&&&&&&&&&&if&(params&!=&null&&&&params.urlParams.size()&!=&0)&{&&&&&&&&&&&&&&&&for&(ConcurrentHashMap.Entry&String,&String&&entry&:&params.urlParams.entrySet())&{&&&&&&&&&&&&&&&&&&&&//&如果请求参数中有中文,需要进行URLEncoder编码&gbk/utf8&&&&&&&&&&&&&&&&&&&&try&{&&&&&&&&&&&&&&&&&&&&&&&&str.append(entry.getKey()).append("=").append(URLEncoder.encode(entry.getValue(),&"utf-8"));&&&&&&&&&&&&&&&&&&&&}&catch&(UnsupportedEncodingException&e)&{&&&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace();&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&str.append("&");&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&str.deleteCharAt(str.length()&-&1);&&&&&&&&&&&&}&&&&&&&&&&&&confirm_order_btn.setEnabled(false);&&&&&&&&&&&&Bundle&bundle&=&new&Bundle();&&&&&&&&&&&&bundle.putString(BaseWebViewAct.PAGE_TITLE,&"支付宝支付");&&&&&&&&&&&&bundle.putString(BaseWebViewAct.PAGE_URL,&str.toString());&&&&&&&&&&&&showActivity(aty,&PayByZFBAct.class,&bundle);&&&&&&&&}&&&&}&&开发中可能常出现的问题:(1):调起快捷支付宝不出来;更换最新的assets下快捷支付的apk问当前最新的;
源码下载:&&& &&& &&& &&& &&http://download.csdn.net/detail/hongliuxing/8090891官方支付:http://download.csdn.net/detail/hongliuxing/8090923标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!Model:RLF-
Model:RLF-
Model:RLF-002Z-11
Model:RLF-111206B
Model:RLF-028D-7
Model:RLF-11062C5
Model:RLF-.
Model:RLF-2469SF
&&&&&&& &&&&&&& |
&&&&&&&&&&&&&& |
&&&&&&&&&&&&&& |
&&&&&&&&&&&&&& |
&&&&&&&&&&&&&& |
E-mail:&&&&& Tel:76556&&&&&Fax:19586
&&&Copyright&, . All Rights Reserved
&&娴橧CP澶8019607鍙/p>页面已拦截
无锡网警提示您:
该网址被大量用户举报,可能含有恶意信息。

我要回帖

更多关于 海外支付宝代充值 的文章

 

随机推荐