返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP对接Ios支付
  • 338
分享到

PHP对接Ios支付

php 2023-09-04 12:09:05 338人浏览 八月长安
摘要

流程:   1、前端在调起苹果支付前,先请求到服务端,服务端先生成一条充值记录,但是状态为:未支付;然后把这个订单id发给前端。   2、前端在支付完成的时候,会收到苹果的支付凭证,将此凭证和订单id回传给服务端。订单id的作用是用来确定是

流程:

  1、前端在调起苹果支付前,先请求到服务端,服务端先生成一条充值记录,但是状态为:未支付;然后把这个订单id发给前端。

  2、前端在支付完成的时候,会收到苹果的支付凭证,将此凭证和订单id回传给服务端。订单id的作用是用来确定是哪一笔。支付凭证是拿来校验是否支付成功。检验成功后,自己的业务逻辑(将该条订单的状态改为已支付,然后加余额或延长会员时间)

  在这我也说一下前端可能会遇到的一个问题,方便有遇到的,可以参考。

  直接编译到苹果手机上,会一直发起失败。我们这边的解决方法是,打包出来,然后发到苹果的【TestFlight】上,然后就可以正常发起了。

  而且这时候发起的支付,可以无限支付,因为是沙盒环境,不会扣费

后端在苹果支付的过程中,只需要做两步操作:

第一步:生成一条充值记录

第二部:接收到前端的支付凭证后,校验支付凭证,然后实现自己的业务逻辑

以下是苹果支付的验证。(创建订单的接口,不用特殊处理,只要生成一条未支付的订单记录就行(直接insert一条记录)。这里就不贴代码了)

 'App Store无法读取你提供的JSON数据',        21002 => '收据数据不符合格式',        21003 => '收据无法被验证',        21004 => '你提供的共享密钥和账户的共享密钥不一致',        21005 => '收据服务器当前不可用',        21006 => '收据是有效的,但订阅服务已经过期。当收到这个信息时,解码后的收据信息也包含在返回内容中',        21007 => '收据信息是测试用(sandbox),但却被发送到产品环境中验证',        21008 => '收据信息是产品环境中使用,但却被发送到测试环境中验证'    ];    public function _initialize()    {        parent::_initialize();        $this->model = model('app\\common\\model\\activity\\Order');    }        public function verifyReceipt()    {        $receipt = $this->request->param('receipt/s', '');        if (empty($receipt)) {            $this->error('订单错误');        }                $this->orderNum = $this->request->param('order_id/s', '');        $order = $this->model->where(array('order_id' => $this->orderNum))->find();        if (empty($order)) {            $this->error('订单错误');        }        if ($order['state'] == 1) {            $this->error('订单已成功支付,请确认');        }                        $time = time();        file_put_contents("notifyLog/notifyProcessLog".date("Ymd", $time).".log", "\n" . date("Y-m-d H:i:s", $time) . ",支付凭证:" . $receipt, FILE_APPEND);        $jsonItem = json_encode(['receipt-data' => $receipt]);        $url = 'https://buy.itunes.apple.com/verifyReceipt';      //正式        //模拟post提交(下面会贴出来),将前端获取到的凭证,去和苹果换取详细的支付信息        $result = $this->http_post_json($jsonItem, $url);        if ($result['status'] == '21007') {            //验证失败 返回app错误状态            $url = 'https://sandbox.itunes.apple.com/verifyReceipt';  //测试            $result = $this->http_post_json($jsonItem, $url);        }        file_put_contents("notifyLog/notifyProcessLog".date("Ymd", $time).".log", "\n" . date("Y-m-d H:i:s", $time) . ",order:" . var_export($result, true), FILE_APPEND);    //如果检测到 等于 0 就是支付成功,其他的错误码去获取对应错误信息        if ($result['status'] !== 0) {            //验证失败 返回app错误状态            $this->error($this->appleCode[$result['status']]);        }    //接下来就是做自己的业务逻辑                $this->success('充值成功');    }    //模拟post提交    public function Http_post_JSON($json, $url)    {        $ch = curl_init($url);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);        curl_setopt($ch, CURLOPT_POST, true);        curl_setopt($ch, CURLOPT_POSTFIELDS, $json);        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  //这两行一定要加,不加会报SSL 错误        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);        $response = curl_exec($ch);        $errno = curl_errno($ch);        $errmsg = curl_error($ch);        curl_close($ch);        $data = json_decode($response, true);        return $data;    }}

接下来主要就是自己的业务逻辑了,自己亲测可用。验证的步骤做的不够详细,可以自己根据逻辑详细做验证。最后祝大家都能写码无bug

来源地址:https://blog.csdn.net/duyinyin/article/details/128696349

--结束END--

本文标题: PHP对接Ios支付

本文链接: https://lsjlt.com/news/393533.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP对接Ios支付
    流程:   1、前端在调起苹果支付前,先请求到服务端,服务端先生成一条充值记录,但是状态为:未支付;然后把这个订单id发给前端。   2、前端在支付完成的时候,会收到苹果的支付凭证,将此凭证和订单id回传给服务端。订单id的作用是用来确定是...
    99+
    2023-09-04
    php
  • PHP支付-Stripe支付对接支付宝
    安装stripe包 composer require stripe/stripe-php 注册stripe账号,获取公钥和秘钥 获取公钥和秘钥 对接支付宝 $secret_key = 密钥$total_price = 0.5 //支付金额$...
    99+
    2023-10-11
    java junit mysql
  • 【连连支付】PHP第三方连连支付对接
    前言: 前不久刚搞定了易宝支付,运营说,不用易宝支付了,改用连连支付。🆗🆗🆗 连连支付搞起~ 对接过程: 一 在商户后台,下载连连提供的密钥生成工具。 获取公私密钥后,在商户后台配置公钥。 ...
    99+
    2023-10-04
    php 连连支付 第三方支付
  • PHP对接paypal支付的方法
    本文将为大家详细介绍“PHP对接paypal支付的方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“PHP对接paypal支付的方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去...
    99+
    2023-06-06
  • PHP支付,TP5.0接入支付宝支付流程
    一、本地环境的话,首先需要有沙箱 登录支付宝,蚂蚁金服账号(个人支付宝账号)戳这里!戳这里! 点击 右上角的控制台,然后在拉倒最下面,就能看到 沙箱环境 需要自己开启,配置一下信息,特别...
    99+
    2023-09-21
    php mysql
  • 码支付易支付等接口对接方法
    有点基础的朋友看看这个,一般网站之类的对接就会简单很多,把接口文件上传到网站运行目录。 html目录:展示付款页面的3种不同方式 includes,lib目录:一些类及函数 不用改动 qr目录:二维码目录 不用管...
    99+
    2023-09-01
    支付对接 对接api Powered by 金山文档
  • thinkphp6 对接支付宝支付 手机网站支付 踩坑
    代码中选择的公钥模式或者证书模式 对应的支付宝后台的https://open.alipay.com开发设置的 接口加签方式(密钥/证书)也要相同 2.tp6引入支付宝的demo 用require_on...
    99+
    2023-09-12
    php 开发语言
  • 对接支付宝php版easysdk接口分享
    在网上没有找到支付宝easysdk接口的对接详细说明,自己一步一步的摸索,其中使用chatgpt的帮助作用不少。 根据官方给的文档 需要执行composer require alipaysdk/eas...
    99+
    2023-09-21
    chatgpt php 开发语言
  • IOS客户端接入微信支付
    实际上,从代码的角度,调起支付APP就是把一些关键的参数通过一定方式打包成为一个订单,然后发送到支付平台的服务器。所以,只要搞清楚了参数设置,搞清楚了每个支付平台的SDK里面一些关键...
    99+
    2022-05-20
    ios 微信支付 微信客户端
  • java对接支付宝支付接口开发是怎样的
    本篇文章为大家展示了java对接支付宝支付接口开发是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。第一步(先要在支付宝进行操做,拿到我们需要开发的信息后在动代码)进入蚂蚁金服,我们先要创建应用...
    99+
    2023-06-22
  • java对接支付宝支付接口开发详细步骤
    目录第一步第二步第三步第四步对接支付宝支付接口,官方文档已经写的很清楚了,但是也有很多像我一样的小白,第一次对接支付宝支付接口,会有些迷茫,所以我在此写下这篇文章,给我和我一样的同学...
    99+
    2024-04-02
  • java对接支付宝支付项目怎么实现
    本篇内容主要讲解“java对接支付宝支付项目怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java对接支付宝支付项目怎么实现”吧!java对接支付宝支付演示现在有不少的项目都需要对接支付...
    99+
    2023-07-02
  • 【超详细,全流程】java对接支付宝支付
    支付流程 一、对接前的准备1.1创建应用,获取参数:APPID(使用沙箱环境可跳过)1.1.1添加产品1.1.2配置密钥,获取第二个参数:商户的私钥1.1.3支付宝网关1.1.4生成参数密钥对...
    99+
    2023-10-21
    java
  • java对接支付宝支付项目的实战记录
    目录java对接支付宝支付演示成功演示图讲解一下实际支付的时候所需要的参数吧总结java对接支付宝支付演示 现在有不少的项目都需要对接支付,这里主要是进行讲解对接支付宝H5支付 废话...
    99+
    2024-04-02
  • 微信支付、支付宝支付等常用第三方支付通道接口手续费对比
    目录一、支付市场的份额二、支付手续费与限额三、常用第三方支付通道接口手续费对比支付宝支付接口费率:微信支付接口费率:QQ钱包支付接口费率:银联支付接口费率:京东支付接口费率:通联代付...
    99+
    2023-01-28
    微信支付手续费 支付宝手续费 银联支付手续费 第三方支付手续费
  • iOS实现H5支付(微信、支付宝)原生封装
    前言 支付分APP支付、H5支付、扫码支付等。app支付一般在app中使用,并且需要集成相应的支付SDK,H5支付多用于网页。如果你的APP不想集成支付SDK,又想实现支付功能,你...
    99+
    2022-06-05
    iOS H5支付 微信 支付宝
  • 〔支付接入〕微信的 h5 支付和 jsapi 支付
    ✨ 目录 🎈 申请商户号🎈 申请商户证书🎈 设置APIv3密钥🎈 下载 SDK 开发包🎈 下载平台证书🎈 关联 AppID 账...
    99+
    2023-08-16
    微信支付 支付 H5支付 php 微信 经验分享 开发语言
  • java对接微信支付:JSAPI支付成功之“微信回调”
    承接上一篇微信支付,现在简单说一下 微信支付回调 目录 一、支付回调 二、微信回调地址问题 1.本地/上线测试 2.控制器调用接口(代码) 总结 一、支付回调 当用户支付成功之后,支付平台会向我们指定的服...
    99+
    2023-09-02
    微信
  • springboot中怎么对接微信支付
    springboot中怎么对接微信支付,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。对接的完整流程如下首先是配置gzh.appid=公众号appidwxPay.mchId=...
    99+
    2023-06-20
  • 2023微信支付对接全流程
    简单说一下微信支付的几种类型的应用场景以及前提条件 官方文档:https://pay.weixin.qq.com/wiki/doc/apiv3/index.shtml 前提条件: 需要一个载体公众号或...
    99+
    2023-09-10
    微信 小程序 微信小程序
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作