华夏天涯若比邻
华夏天涯若比邻
  • 发布:2020-07-21 05:17
  • 更新:2020-07-21 05:17
  • 阅读:1866

app支付宝最简单的接入方式 分享学习

分类:HBuilderX

最为简化的app对接支付宝付款功能,之前遇到返回62000,这个主要是channel 这个参数未被定义 指定的付款渠道!
以下代码仅供参考,根据自己的项目实质性修改,使用!本人已测试安卓和ios均可付款成功,后端采用异步验证!传达给服务器,通过数据检索,判断是否充值成功!

// 获取支付通道
var aliChannel = null; // 支付宝支付
var channel = null; //支付通道

//支付宝通道
function zhiyunokrss() //需要进入页面自动执行该串代码 获取app内嵌sdk支付通道
{
plus.payment.getChannels(function(channels){
for (var h in channels) {
var channel=channels[h];
if(channel.id=='qhpay'||channel.id=='appleiap'){ // 屏蔽360和苹果通道
continue;
}

if (channels[h].id == "alipay") {    //筛选支付宝通道  
    aliChannel=channels[h];       //指定支付宝通道  
}   
}         

},function(e){
tishi("获取支付通道失败:"+e.message);
});
}

//执行付款
function chongr(id,crok){
var Hzsh=参数1 安全自定义
var Hssk= 参数2 安全自定义
var nrs = document.getElementById("eduss").value //付款金额
//var PAYSERVER=''; 原生url地址 可根据传值判断 进行支付宝 微信 ios支付方式

    if(id == 'alipay'){      
    PAYSERVER = "http://..............ok.php";  后端版本php  
    channel = aliChannel;      
    mui.ajax(PAYSERVER,{   
        dataType:'text',//服务器返回json格式数据   
        type:'GET',//HTTP请求类型  
        data:{Hzsh:Hzsh.......},    
        timeout:3000,//超时时间设置为10秒;    
        success:function(data){   
        plus.payment.request(channel,data,function(result){    //给新手提示一下:调起支付宝打开支付 channel 指定通道  data 支付宝返回一串订单验证 通过它即可打开支付宝app进入付款页面  
                        tishi("充值成功!");  
                        //关闭页面                                
                        },function(error){   

                         tishi("充值失败"+error.code);   
                        });      

        },    
        error:function(xhr,type,errorThrown){    
        tishi(xhr+'--'+type+'--'+errorThrown) //错误提示  
        }    
    });  

}
}


是不是非常简单,我也研究很近,高手勿喷,仅供新手学习交流!


//后端方面 ok.php
<?php
header('Access-Control-Allow-Origin: *');
header('Content-type: text/plain');

require_once 'aop/AopClient.php';
require_once 'aop/request/AlipayTradeAppPayRequest.php';

$urls = $_REQUEST['cs1'];//编号
$czje = $_REQUEST['cs2'];//金额
$czh = $_REQUEST['cs3'];//账户名

// 获取支付金额
$amount='';
if($_SERVER['REQUEST_METHOD']=='POST'){
$amount=$_POST['total'];
}else{
$amount=$_GET['total'];
}

$total = floatval($amount);
if(!$total){
$total = 1;
}

$aop = new AopClient;
$aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
$aop->appId = "20**";//appID
$aop->rsaPrivateKey = "支付宝秘钥";//'请填写开发者私钥去头去尾去回车,一行字符串';
$aop->format = "json";
$aop->charset = "UTF-8";
$aop->signType = "RSA2";
$aop->alipayrsaPublicKey = "支付宝秘钥";//请填写支付宝公钥,一行字符串'
$request = new AlipayTradeAppPayRequest();

// 异步通知地址
$notify_url = 'http://app..................jso';//商户外网可以访问的异步地址 支付宝平均按毫秒向服务器发送信息,确认对方是否付款成功 异步位置需要根据支付宝官方反馈支付状态判断支付结果;

// 订单标题
$subject = '会员充值';
// 订单详情
$body = '会员违章服务费';
// 订单号,示例代码使用时间值作为唯一的订单ID号
//$out_trade_no = $urls;

//SDK已经封装掉了公共参数,这里只需要传入业务参数
$bizcontent = "{\"body\":\"".$body."\","
. "\"subject\": \"".$subject."\","
. "\"out_trade_no\": \"".$urls."\","
. "\"timeout_express\": \"30m\","
. "\"total_amount\": \"".$czje."\","
. "\"product_code\":\"QUICK_MSECURITY_PAY\""
. "}";
$request->setNotifyUrl($notify_url);
$request->setBizContent($bizcontent);
//这里和普通的接口调用不同,使用的是sdkExecute
$response = $aop->sdkExecute($request);

// 注意:这里不需要使用htmlspecialchars进行转义,直接返回即可
echo $response; //返回json给app
?>

0 关注 分享

要回复文章请先登录注册