[CocosCreator]全栈接入阿里支付宝SDK

一.前言

        最近给公司的游戏接入支付宝SDK(小预告:下期接微信SDK),又是焦头烂额的3天(有些人就会问,怎么要3天?首先我是全栈,整个app的支付流程,包括前,后端都是我亲力亲为的).其实现在回看这几天的历程,80%的时间都是花在看官方文档和实例上.这并不是我第一次接入支付宝了,奈何时隔太久,完全没留有一丝印象,导致痛苦的经历又经历一遍.于是乎本文就诞生了,我会把很官方的东西,嚼碎了喂给你吃,同时我自己也再次巩固一遍.

二.开始接入

        1.首先拿到官方的授权三宝:

        appid :这个我不多解释,懂的都懂

        appPrivateKey:应用私钥

        alipayPublicKey:支付宝公钥(这里我啰嗦一句:这个支付宝公钥是拿应用公钥在官网上兑换而来的,兑换而来的兑换而来的......总要的问题说三遍,不是应用公钥)

        2.明确支付流程:(熟读几遍

                (1)客户端点击充值发起支付行动,通过服务器接口获取签名:orderStr,这个是非常机密的,所有会在服务端生成再交给客户端,这个过程服务端会初步生成订单,其中主要包括订单号,金额等

                (2)客户端拿到签名,调用支付宝接口,正式发起支付应用跳转,这里的跳转当然是跳转到支付宝App,大家都熟悉的消费界面,这里没啥好说的

                (3)买家支付操作完成,支付成功的话,服务器会收到支付宝官方的回调,服务器通过回调信息,校验本次支付的有效性,处理对此订单的处理后续工作,比如发送充值所得等.如果买家退出支付,放弃支付,支付失败等情况,服务端是不会收到官方回调.

这是我画的具体流程图,请细品:

        3.客户端代码接入:

                (1)首先CocosCreator需要构建Android工程,然后下载官方的Demo工程,解压,把工具类导入工程,如图:

                (2)然后在 工程的build.gradle添加依赖:如图:

                (3)改写org/cocos2dx/javascript/AppActivity.java,这里我省略了一些没用的干扰方法,只保留支付宝需要的,如图:

/****************************************************************************
 Copyright (c) 2015-2016 Chukong Technologies Inc.
 Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.

 http://www.cocos2d-x.org

 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:

 The above copyright notice and this permission notice shall be included in
 all copies or substantial portions of the Software.

 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 ****************************************************************************/
package org.cocos2dx.javascript;

import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import com.alipay.sdk.app.EnvUtils;
import com.alipay.sdk.app.PayTask;

import org.cocos2dx.javascript.alipay.AuthResult;
import org.cocos2dx.javascript.alipay.PayResult;
import org.cocos2dx.javascript.utils.NetworkUtil;
import org.cocos2dx.lib.Cocos2dxActivity;
import org.cocos2dx.lib.Cocos2dxGLSurfaceView;

import java.util.Map;

public class AppActivity extends Cocos2dxActivity {

    private static final int PERMISSION_REQUEST_CODE = 1;

    //支付结果
    public static String alipayResult = null;
    private static final int SDK_PAY_FLAG = 1;
    private static final int SDK_AUTH_FLAG = 2;

    @Override
    protected void onCreate(Bundle savedInstanceSta
  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Artemis丶月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值