Android 支付宝支付、微信支付、银联支付 整合第三方支付接入方法

1、该文章描述了流行的第三方支付整合的方法和文档查看地址信息等。

参考资料第三方api平台
2.总体技术要求
2.1.设计概括
针对不同的支付类型调用设置不同的jar包,方便根据不同的支付方式,支付完成上报做为jar包,根据需求集成相应的jar包。因为支付sdk需要给第三方使用,所有的支付平台只要的sign参数都需要服务器直接加密完成,将结果返回给客户端,去调起api。

支付完成上报接口
上报参数说明:

参数名称必选类型描述
order_idString订单ID
statusint支付结果,1=成功,0=失败
product_idString集成支付的app产品
pay_typeint支付类型,支付宝=1,微信=2,3=银联,4=和支付

微信支付
参考资料 https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_5
2.1.1.1.集成微信支付需要

参数名称必选类型描述
appidString公众账号ID
partneridString支付结果,1=成功,0=失败
prepayidString预支付交易会话ID
packageString扩展字段写固定值Sign=WXPay
noncestrString随机字符串
timestampString时间戳
signString签名

参数组装格式demo
{
“appid”: “wx3fe5995cacb9b63e”,
“partnerid”: “1288820601”,
“prepayid”: “wx20160106103528a4be380d440881448989”,
“noncestr”: “4c6be569d5c342058ab1496f951b279e”,
“timestamp”: “1452047729”,
“package”: “Sign=WXPay”,
“sign”: “8F40D811230E569C979109B91552096C”
}

2.1.1.2.支付结果回调
参照微信SDK Sample,在net.sourceforge.simcpux.wxapi包路径中实现WXPayEntryActivity类(包名或类名不一致会造成无法回调),在WXPayEntryActivity类中实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。注意一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。代码示例如下:

publicvoidonResp(BaseRespresp){
    if(resp.getType()==ConstantsAPI.COMMAND_PAY_BY_WX){
        Log.d(TAG,"onPayFinish,errCode="+resp.errCode);
        AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
        builder.setTitle(R.string.app_tip);
    }
}

由于回调需要WXPayEntryActivity 而且放在特定的包下面,jar无法帮其完成,需要集成sdk的app自己处理 WXPayEntryActivity的回调,并配置

返回结果回调中errCode值列表:

返回码必选
0支付成功
-1可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
-2无需处理。发生场景:用户不支付了,点击取消,返回APP。

支付宝支付
资料参考
https://doc.open.alipay.com/doc2/detail.htm?spm=0.0.0.0.8MCe0H&treeId=59&articleId=103662&docType=1

2.1.1.3.支付宝支付
调用支付宝需要的参数结构

partner="2088101568358171"&seller_id="xxx@alipay.com"&out_trade_no="0819145412-6177"&subject="测试"&body="测试测试"&total_fee="0.01"&notify_url="http://notify.msp.hk/notify.htm"&service="mobile.securitypay.pay"&payment_type="1"&_input_charset="utf-8"&it_b_pay="30m"&sign="lBBK%2F0w5LOajrMrji7DUgEqNjIhQbidR13GovA5r3TgIbNqv231yC1NksLdw%2Ba3JnfHXoXuet6XNNHtn7VE%2BeCoRO1O%2BR1KugLrQEZMtG5jmJIe2pbjm%2F3kb%2FuGkpG%2BwYQYI51%2BhA3YBbvZHVQBYveBqK%2Bh8mUyb7GM1HxWs9k4%3D"&sign_type="RSA"

2.1.1.4.支付宝结果回调
返回值: 本方法调用的返回结果,参数说明见“同步通知参数说明”。字符串格式,形式一般如下:

resultStatus={9000};memo={};result={partner="2088101568358171"&seller_id="xxx@alipay.com"&out_trade_no="0819145412-6177"&subject="测试"&body="测试测试"&total_fee="0.01"&notify_url="http://notify.msp.hk/notify.htm"&service="mobile.securitypay.pay"&payment_type="1"&_input_charset="utf-8"&it_b_pay="30m"&success="true"&sign_type="RSA"&sign="hkFZr+zE9499nuqDNLZEF7W75RFFPsly876QuRSeN8WMaUgcdR00IKy5ZyBJ4eldhoJ/2zghqrD4E2G2mNjs3aE+HCLiBXrPDNdLKCZgSOIqmv46TfPTEqopYfhs+o5fZzXxt34fwdrzN4mX6S13cr3UwmEV4L3Ffir/02RBVtU="}

客户端返回码

返回码含义
9000订单支付成功
8000正在处理中
4000订单支付失败
6001用户中途取消
6002网络连接出错

银联支付
2.1.1.5.银联调用app所需参数

参数名称必选类型描述
orderInfoString订单信息为交易流水号,即TN,为商户后台从银联后台获取。
modeString银联后台环境标识,“00”将在银联正式环境发起交易,“01”将在银联测试环境发起交易

activity 用于启动支付控件的活动对象

2.1.1.6.银联控件返回参数

返回码含义
success支付成功
fail支付失败
cancel支付取消
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值