
1、在手机桌面上点击设置,然后进去以后就能看到你的用户信息。
2、进入以后能看到付款和配送字样,就是在这里面进行付款方式的设置,点击进去。
3、进去以后可以看到第一栏的付款方式默认是无。因为手机买过来还没设置过,直接点到付款方式里面去。
4、这里面我们看到有默认的三个选项,分别是支付宝、xyk或借记卡、微信。我们先来添加支付宝的支付方式。选择好以后,点击下一步
5、然后会出现个人信息页面,下面有个登陆支付宝的按钮,点进去。
6、此时会出现支付宝的认证界面,有两种认证方式,第一种是通过扫描上面的二维码,第二种是通过短信认证。因为支付宝是安装在这台手机上,因此无法扫描,只能通过短信认证的方式。点击短信验证。
7、这个时候会调到短信认证界面,先输入支付宝账号,然后输入支付宝账号绑定的手机号码。输入完成后点击验证信息。
8、这个时候就会收到支付宝发来的短信,里面有个验证码,填到验证页面的验证码栏里。然后点击同意协议并开通。
9、稍等片刻后,就会d出提示,你支付宝认证完成。点击返回商户,回到刚才的认证页面,会提示账户详细信息验证成功。点击左下角的完成。返回设置界面,这一步的提示略显繁琐。
10、会到设置界面后,在姓名下方就能看到添加好的支付宝账号,点击下一步。就完成了设置。这个时候还会收到支付宝的一条短信,提示你绑定支付方式成功。
在技术集成之前,商户需要进行注册,并签约安全支付服务。签约成功后可获取支付宝分配的合作商户ID(PartnerID),账户ID(SellerID),调用接口时使用。支付细节的实现,主要通过支付宝提供的一个支付安全服务安装包alipay_plugin_20120428msp.apk,首次使用,首先检查是否安装此插件,没有会提示安装。具体的支付细节,在这个插件内完成。大部分的支付平台也都是采用的这种方式。
调用支付宝的接口进行支付,主要有以下几个步骤
1. 将商户ID,收款帐号,外部订单号,商品名称,商品介绍,价格,通知地址封装成订单信息
2. 对订单信息进行签名
3. 将订单信息,签名,签名方式封装成请求参数
4. 调用pay方法。
主要流程图如下:
支付接口pay方法的调用如下:
。。。
// start pay for this order.
// 根据订单信息开始进行支付
try {
// prepare the order info.
// 准备订单信息
String orderInfo = getOrderInfo(position)
// 这里根据签名方式对订单信息进行签名
String signType = getSignType()
String strsign = sign(signType, orderInfo)
Log.v("sign:", strsign)
// 对签名进行编码
strsign = URLEncoder.encode(strsign)
// 组装好参数
String info = orderInfo + "&sign=" + "\"" + strsign + "\"" + "&"
+ getSignType()
Log.v("orderInfo:", info)
// start the pay.
// 调用pay方法进行支付
MobileSecurePayer msp = new MobileSecurePayer()
boolean bRet = msp.pay(info, mHandler, AlixId.RQF_PAY,this)
if (bRet) {
// show the progress bar to indicate that we have started
// paying.
// 显示“正在支付”进度条
closeProgress()
mProgress = BaseHelper.showProgress(this,null, "正在支付",false,
true)
} else
} catch (Exception ex) {
Toast.makeText(AlixDemo.this, R.string.remote_call_failed,
Toast.LENGTH_SHORT).show()
}
。。。
/**
* 向支付宝发送支付请求
*
* @param strOrderInfo
*订单信息
* @param callback
*回调handler
* @param myWhat
*回调信息
* @param activity
*目标activity
* @return
*/
public boolean pay(final String strOrderInfo,final Handler callback,
final int myWhat, final Activity activity) {
if (mbPaying)
return false
mbPaying = true
//
mActivity = activity
// bind the service.
// 绑定服务
if (mAlixPay ==null) {
// 绑定安全支付服务需要获取上下文环境,
// 如果绑定不成功使用mActivity.getApplicationContext().bindService
// 解绑时同理
mActivity.getApplicationContext().bindService(
new Intent(IAlixPay.class.getName()),mAlixPayConnection,
Context.BIND_AUTO_CREATE)
}
// else ok.
// 实例一个线程来进行支付
new Thread(new Runnable() {
public void run() {
try {
// wait for the service bind operation to completely
// finished.
// Note: this is important,otherwise the next mAlixPay.Pay()
// will fail.
// 等待安全支付服务绑定 *** 作结束
// 注意:这里很重要,否则mAlixPay.Pay()方法会失败
synchronized (lock) {
if (mAlixPay ==null)
lock.wait()
}
// register a Callback for the service.
// 为安全支付服务注册一个回调
mAlixPay.registerCallback(mCallback)
// call the MobileSecurePay service.
// 调用安全支付服务的pay方法
String strRet =mAlixPay.Pay(strOrderInfo)
BaseHelper.log(TAG,"After Pay: " + strRet)
// set the flag to indicate that we have finished.
// unregister the Callback, and unbind the service.
// 将mbPaying置为false,表示支付结束
// 移除回调的注册,解绑安全支付服务
mbPaying = false
mAlixPay.unregisterCallback(mCallback)
mActivity.getApplicationContext().unbindService(
mAlixPayConnection)
// send the result back to caller.
// 发送交易结果
Message msg = new Message()
msg.what = myWhat
msg.obj = strRet
callback.sendMessage(msg)
} catch (Exception e) {
e.printStackTrace()
// send the result back to caller.
// 发送交易结果
Message msg = new Message()
msg.what = myWhat
msg.obj = e.toString()
callback.sendMessage(msg)
}
}
}).start()
return true
}
调用了支付服务之后,有两种方式返回交易结果:
1.支付结果作为接口返回的字符串返回。返回的参数包含在result字符串中,具体再进行解析。
2. 支付宝服务器通知。商户需要提供一个http协议的接口,包含在参数里传递给安全支付,即notify_url。支付宝服务器在支付完成后,会用POST方法调用notufy_url,以xml为数据格式传输支付结果。需要注意的是,商户服务器收到支付宝发的通知之后,需要返回一个纯字符串“success”,不然支付宝的服务器会持续调用七次回调url提供的接口。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)