支付宝支付流程。

1.流程:1.app下订单提交给后台服务器生成订单信息,带有签名。2.提交上述返回数据到支付宝,唤起支付。3.支付宝向app返回支付结果。向服务端异步返回支付结果。

2.关于应用私钥和支付宝公钥

关于私钥,官方要求一定不能放到app客户端。

一定要配对。所谓配对就是选择一种算法的私钥,要使用对应的支付宝公钥。

在以前的api中,签名是在app端完成的。最新的api已不建议这样做。目前最新版本是15.3.5。签名放在服务器端完成,由服务器按照规则返回一个字符串。app端拿着这个串去调用支付宝支付。

需要注意的是,支付需要app状态是上线状态,否则只能使用沙箱测试。具体请看相关文档。

3.支付关键代码:

/**    * 支付宝支付    *@paramorderInfo    */privatevoidaliPay(finalString orderInfo){        Runnable payRunnable =newRunnable() {@Overridepublicvoidrun() {                PayTask alipay =newPayTask(getActivity());                Map result = alipay.payV2(orderInfo,true);                Message msg =newMessage();                msg.what =SDK_ALI_PAY_FLAG;                msg.obj = result;                mHandler.sendMessage(msg);            }        };        Thread payThread =newThread(payRunnable);        payThread.start();    }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

privateHandler mHandler =newHandler() {@SuppressWarnings("unused")publicvoidhandleMessage(Message msg) {switch(msg.what) {caseSDK_ALI_PAY_FLAG: {//支付宝支付PayResult payResult =newPayResult((Map) msg.obj);/**对于支付结果,请商户依赖服务端的异步通知结果。同步通知结果,仅作为支付结束的通知。*/String resultInfo = payResult.getResult();// 同步返回需要验证的信息String resultStatus = payResult.getResultStatus();// 判断resultStatus 为9000则代表支付成功if(TextUtils.equals(resultStatus,"9000")) {// 该笔订单是否真实支付成功,需要依赖服务端的异步通知。Toast.makeText(mContext,"支付成功", Toast.LENGTH_SHORT).show();                        getActivity().finish();                    }else{// 该笔订单真实的支付结果,需要依赖服务端的异步通知。Toast.makeText(mContext,"支付失败"+payResult.getResultStatus()+payResult.getResult(), Toast.LENGTH_LONG).show();                    }break;                }                ....          }      }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

如果你的项目中使用了混淆,还需做一下配置:

#支付宝支付混淆 sdk15.3.5-keep classcom.alipay.android.app.IAlixPay{*;}-keep classcom.alipay.android.app.IAlixPay$Stub{*;}-keep classcom.alipay.android.app.IRemoteServiceCallback{*;}-keep classcom.alipay.android.app.IRemoteServiceCallback$Stub{*;}-keep classcom.alipay.sdk.app.PayTask{ public *;}-keep classcom.alipay.sdk.app.AuthTask{ public *;}-dontwarncom.alipay.**

1

2

3

4

5

6

7

8

9

很简单。有空完善整个流程说明及详细的流程说明。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容