微信公众平台如何实现支付宝支付


第一种情况:淘宝号绑定支付宝 。
1、登陆淘宝官网,点击注册 。
2、淘宝提供了两种注册方式:一般的会员注册和手机注册 。
3、如果是已经注册成功的淘宝号,点击“我的淘宝” 。
4这时,在新出现的页面中选择:设置——支付宝绑定设置 。认真填写上面的信息 , 确认后,淘宝号就绑定支付宝了 。
第二种情况:银行卡绑定支付宝
1、登陆支付宝的官网 。
2、登陆成功后,点击“账户管理” 。
3、选择左上方的“银行卡” 。
4、在新出现的页面中点击“添加银行卡” 。
5、支付宝提供了两种方式绑定银行卡:一种是方式一,另一种是方式二,不管是哪一种都是很方便的,个人建议选择方式一要方便一点 。这时,选择好之后,点击“下一步”,这里以最前面的那家银行举例,请看第二幅图 。文中框住部分一定要认真填写 。特别是身份信息 , 一般是不允许使用绑定别人的身份证开通的银行卡的 。目前 , 支付宝要求信息要一致 。
6、完成后,回到步骤三,看看那里有没有刚才添加的银行卡 。如果有,就表示添加成功了 。
第三种情况:支付宝绑定手机号
1、支付宝绑定手机号是很容易的 。登陆支付宝,点击:手机服务 。
2、点开后,就可以填写手机号绑定了 。当然,如果手机号换号了,想解除之前的绑定的手机号,绑定现在的手机号,也是可以的 。
到支付宝官网,下载支付宝集成开发包,看懂里面的关键代码
由于android设备一般用的都是无线支付,所有我们申请的就是支付宝无线快捷支付接口 。
如果链接失效,你可以到支付宝官网商家服务模块中找到 快捷支付(无线)这个服务 。
下载集成开发包,解压发现里面有客户端的demo即说明文档,在客户端的demo中找到Android_SDK,这个就是你要用到的支付宝接口及demo 。
把demo(alipay_sdk_demo)和(alipay_lib)导入到你的eclipse里面,然后你可以试着运行一遍demo(alipay_sdk_demo),只要把这个demo搞懂了,你就会调用这个支付宝接口了 。至于到时候如何集成到你的项目里面,文档上说明很详细,按着文档上一步一步来就行了 。我的建议是先把这个demo弄懂再设计你的项目,看看调用接口时需要哪些数据,这样也有利于你一开始设计数据 。
下面来简单的介绍下接口demo里面的结构 。
你打开项目会发现里面有5个类 。
其中 , base64.java、Result.java、Rsa.java这3个类不需要动 , 需要用到的,到时候直接放到你项目里面就行了,如果你想了解下它们你也可以看看 。重点就是ExternalPartner.java和Keys.java这两个类 。先来说说Keys.java类吧 。
Key.java这个类等你申请支付宝签约成功后再配置,先放在这不用管,如何配置我注释里面已经的很明白了 。
然后是ExternalPartner.java这个类 。这个类其实也很简单,你运行这个demo会发现就是一个listview里面加载的很多商品信息,点击一款商品就调用会支付宝接口(因为Key.java未配置,所以你现在估计调用不成功) 。我们找到listview的点击事件的方法就找到调用支付宝的入口了
kage?com.alipay.android.msp.demo;?
?
import?java.io.IOException;?
........?
........?
import?com.alipay.android.app.sdk.AliPay;?
?
public?class?ExternalPartner?extends?Activity?implements?OnItemClickListener,?
????OnClickListener?{?
??public?static?final?String?TAG?=?"alipay-sdk";?
?
??private?static?final?int?RQF_PAY?=?1;?
?
??private?static?final?int?RQF_LOGIN?=?2;?
?
??private?EditText?mUserId;?
??private?Button?mLogon;?
?
??@Override?
??public?void?onCreate(Bundle?savedInstanceState)?{?
????super.onCreate(savedInstanceState);?
????setContentView(R.layout.external_partner);?
?
????initProducts();?
????initListView();?
??}?
?
???
??@Override?
??public?boolean?onCreateOptionsMenu(Menu?menu)?{?
????menu.add(Menu.NONE,?Menu.FIRST,?1,?"快速登录");?
????return?true;?
??}?
?
???
??@Override?
??public?boolean?onOptionsItemSelected(MenuItem?item)?{?
????switch?(item.getItemId())?{?
????case?Menu.FIRST:?
??????setContentView(R.layout.trustlogin);?
??????mUserId?=?(EditText)?findViewById(R.id.user_id);?
??????mLogon?=?(Button)?findViewById(R.id.get_token);?
??????mLogon.setonClickListener(this);?
??????break;?
????}?
????return?false;?
??}?
?
??private?void?initProducts()?{?
????if?(sProducts?!=?null)?
??????return;?
?
????XmlResourceParser?parser?=?getResources().getXml(R.xml.products);?
????ArrayList?products?=?new?ArrayList();?
????Product?product?=?null;?
?
????try?{?
??????int?eventType?=?parser.getEventType();?
?
??????while?(eventType?!=?XmlPullParser.END_document)?{?
????????if?(eventType?==?XmlPullParser.START_TAG?
????????????&&?parser.getName().equalsIgnoreCase("product"))?{?
??????????product?=?new?Product();?
??????????product.subject?=?parser.getAttributevalue(0);?
??????????product.body?=?parser.getAttributevalue(1);?
??????????product.price?=?parser.getAttributevalue(2);?
??????????products.add(product);?
????????}?
????????eventType?=?parser.next();?
??????}?
?
??????sProducts?=?new?Product[products.size()];?
??????products.toArray(sProducts);?
?
????}?catch?(XmlPullParserException?e)?{?
??????e.printStackTrace();?
????}?catch?(IOException?e)?{?
??????e.printStackTrace();?
????}?
??}?
???//listview点击事件,里面调用的支付宝接口?
??@Override?
??public?void?onItemClick(AdapterView?arg0,?View?arg1,?int?position,?
??????long?arg3)?{?
????try?{?
??????Log.i("ExternalPartner",?"onItemClick");?
??????String?info?=?getNewOrderInfo(position);//这个是订单信息?
??????String?sign?=?Rsa.sign(info,?Keys.PRIVATE);//签名加密订单信息什么的?
??????sign?=?URLEncoder.encode(sign);?
??????info? =?"&sign=""? ?sign? ?""&"? ?getSignType();?
??????Log.i("ExternalPartner",?"start?pay");?
??????//?start?the?pay.?
??????Log.i(TAG,?"info?=?"? ?info);?
?
??????final?String?orderInfo?=?info;?
??????new?Thread()?{?
????????public?void?run()?{?
??????????AliPay?alipay?=?new?AliPay(ExternalPartner.this,?mHandler);//这个应该就是支付宝接口了 , 哈哈,支付宝现在把很多功能都封装了 , 所以省了很多代码?
???????????
??????????//设置为沙箱模式,不设置默认为线上环境?
??????????//alipay.setSandBox(true);?
???????????
??????????String?result?=?alipay.pay(orderInfo);//这个是返回的结果 , 你到时候可以根据这个结果加以操作你想操作的,然后基本就完了 , 其他的你想附加的功能你看着写吧,现在Key.java配置好就能调用快捷支付了?
??????????//后面的这些代码可以改成你自己的,也可以在它们的基础上改?
??????????Log.i(TAG,?"result?=?"? ?result);?
??????????Message?msg?=?new?Message();?
??????????msg.what?=?RQF_PAY;?
??????????msg.obj?=?result;?
??????????mHandler.sendMessage(msg);?
????????}?
??????}.start();?
?
????}?catch?(Exception?ex)?{?
??????ex.printStackTrace();?
??????Toast.makeText(ExternalPartner.this,?R.string.remote_call_failed,?
??????????Toast.LENGTH_SHORT).show();?
????}?
??}?
???//获得订单信息的方法???
??private?String?getNewOrderInfo(int?position)?{?
????StringBuilder?sb?=?new?StringBuilder();?
????sb.append("partner="");?
????sb.append(Keys.DEFAULT_PARTNER);//?合作身份者id?
????sb.append(""&out_trade_no="");?
????sb.append(getOutTradeNo());//这个是订单编号?
????sb.append(""&subject="");?
????sb.append(sProducts[position].subject);//这个应该是商品名称?
????sb.append(""&body="");?
????sb.append(sProducts[position].body);//这个应该是商品的描述 , 具体你可以参考demo?
????sb.append(""&total_fee="");?
????sb.append(sProducts[position].price.replace("一口价:",?""));//这个是要付款的金额,到时候你调用的时候改下就行了?
????sb.append(""?ify_url="");?
????//?网址需要做URL编码?
????sb.append(URLEncoder.encode("http://notify.java.jpxx.org/index.jsp"));//服务器异步通知页面,完成交易后通知商家服务器的页面,以post的形式将商品订单信息发送到指定页面,手机客户端不需要可以先放在这不管? 。
????
????
????
????是不是,这个类很简单看懂吧,就一listview 。调用支付宝接口的方法就在onItemClick()方法里面,如果你是一个按钮的话换成按钮点击事件就行了 , 主要的细节我注释已写 。????现在你要想的是 , 需要哪些数据,提供给onItemClick()方法里面的?String?info 。demo里面的数据是getNewOrderInfo(int?position)这个方法提供的,你可以自己提供或者在上面修改下 。
【微信公众平台如何实现支付宝支付】????现在,你已经知道代码是如何调用支付宝接口了 。接下来,是如何把这些集成到你的项目中去 。

    推荐阅读