Android平台,支付宝和微信app支付总结


一.支付宝支付

1.官网地址:
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.6118ne&treeId=193&articleId=105201&docType=1

2.账号信息
// 商户PID
public static final String PARTNER = "";
// 商户收款账号
public static final String SELLER = "";
// 商户私钥,pkcs8格式
public static final String RSA_PRIVATE = "";
// 支付宝公钥
public static final String RSA_PUBLIC = "";

3.生成订单
订单的生成最好是放在服务端,客户端在付款前从服务端获取订单信息,然后对签名信息进行utf-8转码,至于订单的封装可参考官网API.

4.调用支付接口

5.支付结果码
ALI64 错误提示:是由于签名出错,检查服务端和客户端的签名信息是否一致

6.支付结果:
通过支付宝的接口可以获取支付结果码:
9000:支付成功
8000:支付结果确认中

7.错误信息收集
ali69
报错含义就是没权限,请检查:
1、检查收款账号是否是签约账号;
2、检查是否签约了移动支付产品。
可登录 b.alipay.com (企业商户登录qy.alipay.com ),我的商家服务(签约管理)里面查看自己的签约情况!

ALI59
1、检查partner参数值是否正确,是否是自己签约的;
2、检查请求参数,打印请求参数,和文档对比,请求参数是否正确,检查文档中必须传的参数有没有都请求给支付宝,有没有参数漏掉的,是否有自定义参数,详见其接口文档;

二.微信APP支付

1.官网地址:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2

2.账号信息
Appid:微信开放平台审核通过的应用APPID
Partnerid:微信支付分配的商户号
API密钥:交易过程生成签名的密钥
Appsecret:AppSecret是APPID对应的接口密码,用于获取接口调用凭证access_token时使用。

3.签名信息的配置
微信app支付的过程中,需要正式签名apk,才可以测试,所以需要在官网配置当前应用的包名和签名,签名信息的查看方式,在终端运行如下命令:

C:\Program Files\Java\jdk1.7.0_75\bin>keytool -list -v -keystorec:\Users\user\.android\debug.keystore

c:\Users\user\.android\debug.keystore:这个路径是当前应用对应的签名文件

运行后会获取如下值:

MD5: 1A:0F:52:94:8D:DB:49:20:7A:7E:A5:3B:A3:A7:F9:30

SHA1: 99:53:4E:E2:1F:CB:90:AB:66:90:D6:29:57:92:AD:AC:51:4F:76:F2

把MD5对应的值配置到微信官网中,在配置时,去掉MD5中的冒号,如下参考:

1A0F52948DDB49207A7EA53BA3A7F930

这一步非常重要,配置完后,为了确认自己的应用签名和微信官网是否一致,可安装Gen_Signature_Android.apk,运行后输入自己的包名,查看当前应用的签名。

4.添加支付结果界面
在当前工程中新建包名,以.wxapi结尾,例如:
当前应用包名:com.demo.ui
新建包名为:com.demo.ui.wxapi
其次在当前包下新建Activity,文件名为:WXPayEntryActivity.java
文件名一定不能错,否则接收不到微信支付结果
参考官网提供的demo,在当前Activity中实现回调接口

5.在AndroidManifest.xml中配置WXPayEntryActivity.java
在注册WXPayEntryActivity时,添加intent-filter
<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:scheme="内容为appid"/>
</intent-filter>

6.订单的生成
订单的生成是在服务端中,客户端在付款之前先从服务端中获取订单

7.调用支付接口
在调用之前先注册当前应用,接口如下:
IWXAPI api = WXAPIFactory.createWXAPI(context,appid);
api.registerApp(appid);
boolean send = api.sendReq(req);
Req: 为订单实体类
如果send的值为true,则说明能成功调用微信支付接口

8.支付结果
baseResp.errCode=0 : 表示支付成功
baseResp.errCode=-1: 表示支付失败
baseResp.errCode=-2: 表示取消支付

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页