返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP 实现汇聚adapay调用微信支付
  • 938
分享到

PHP 实现汇聚adapay调用微信支付

phpthinkphp微信 2023-09-04 10:09:12 938人浏览 独家记忆
摘要

目录 前言 一、下载SDK 二、配置 三、实际操作 1.引入SDK 2.代码参考 四、回调 总结 前言 先整理一下调起微信支付的流程: Adapay成功发起支付请求 -> 将请求成功中的 pay_info 返回给前端-> 前端使用 pay

目录

前言

一、下载SDK

二、配置

三、实际操作

1.引入SDK

2.代码参考

四、回调

总结


前言

先整理一下调起微信支付的流程:

Adapay成功发起支付请求 -> 将请求成功中的 pay_info 返回给前端-> 前端使用 pay_info 调用微信

官网文档:

帮助开发者了解所有技术对接参数和请求_开发者_Adapay


一、下载SDK

找到你对应的语言下载SDK:这里我下载PHP

帮助开发者了解所有技术对接参数和请求_开发者_Adapay

创建支付对象:

帮助开发者了解所有技术对接参数和请求_开发者_Adapay

二、配置

完整文件:所有方法都在Adapay下(Demo文件中有参考示例)

我们要使用的重要文件:

Payment.php

发起支付的方法

config.php

配置文件,引入参数文件(根据你自己的参数文件调整路径)

config/config.php

这个文件是存放【api_key_live、api_key_live、rsa_public_key、rsa_private_key 】这几个重要参数。需要自己新建或者或则直接从Demo中复制到Adapay中然后进行修改

# 将以下四个参数替换成你自己真实的{  "*************DO NOT CHANGE CONTENT*************": "",  "api_key_live": "api_live_真实参数",  "api_key_test": "api_test_真是参数",  "rsa_public_key": "公钥",  "*************DO NOT CHANGE CONTENT*************": "",  "rsa_private_key": "私钥"}

三、实际操作

1.引入SDK

# 加载基础 adapay 基础类# SDK 初始化文件加载include_once  dirname(__FILE__) . "../../../../vendor/adapay_sdk_php/adapay_sdk_php_v1.4.4/AdapaySdk/init.php";# 在文件中设置 DEBUG 为 true 时, 则可以打印日志到指定的日志目录下 LOG_DIRinclude_once  dirname(__FILE__) . "../../../../vendor/adapay_sdk_php/adapay_sdk_php_v1.4.4/AdapaySdk/config.php";

 定义app_id:

2.代码参考

    public function launch_pay()    {        # 初始化支付类        $payment = new \AdaPaySdk\Payment();        # 自定义的订单号:这里我用time举例,你可以根据你的需要变更        $order_no = date("YmdHis") . rand(100000, 999999);        # 付款金额保留两位数(这里需要注意就算是正数也需要保留两位小数)        $pay_amt = number_format("付款金额", 2);        # 付款人微信 open_id        $open_id = "这里要先通过微信获取 《付款人》 的openid";        # 发起之前建议在这里单独存储一下订单信息(如:订单号、金额、付款人openid、以及其他你需要的信息,方便后面使用)        # 支付设置        $payment_params = array(            # 引用枚举定义的app_id            "app_id"      => test::app_id,            # 订单号            "order_no"    => $order_no,            # 支付渠道(官网文档有说明,根据实际来选择(这里我测试用公众号))            "pay_channel" => "wx_pub",            # 商品_付款总金额            "pay_amt"     => $pay_amt,            # 商品_标题            "goods_title" => "测试商品",            # 商品_描述       "goods_desc"  => "body",            # 通知回调地址            "notify_url"  => "http://域名(或ip)/这里放你接收回调的方法路径",            # (微信)付款人open_id              "expend"      => [                "open_id" => $open_id              ]        );        # 发起支付        $payment->create($payment_params);        # 对支付结果进行处理(可以在这一步将成功失败信息存储起来)        if ($payment->isError()) {            # 失败处理            $aData = [                "app_id"      => $payment->result["app_id"],                "error_code"  => $payment->result["error_code"],                "error_msg"   => $payment->result["error_msg"],                "error_type"  => $payment->result["error_type"],                "order_no"    => $payment->result["order_no"],                "pay_amt"     => $payment->result["pay_amt"],                "pay_channel" => $payment->result["pay_channel"],                "status"      => $payment->result["status"],            ];            Db::table("日志表名")->insert($aData);            return $payment->result;        } else {            $aData = [                "request_id"   => $payment->result["id"],                "created_time" => $payment->result["created_time"],                "order_no"     => $payment->result["order_no"],                "prod_mode"    => $payment->result["prod_mode"],                "app_id"       => $payment->result["app_id"],                "pay_channel"  => $payment->result["pay_channel"],                "pay_amt"      => $payment->result["pay_amt"],                "query_url"    => $payment->result["query_url"],                "status"       => $payment->result["status"],                "expend"       => $payment->result["expend"]["pay_info"],            ];            # 成功处理_返回pay_info信息给前端            Db::table("日志表名")->insert($aData);            # 这里很重要!! 需要将 pay_info 返回给前端取调起微信支付            return $payment->result["expend"]["pay_info"];        }    }

四、回调

        # 回调接收(接收回调要用post方式)        $post_data      = json_decode($_POST["data"], 1);        switch ($post_data["status"]) {            case "succeeded":                # 回调成功                # 这里建议在发起支付之前存储一下订单信息(在回调成功之后使用订单号作为查询条件)                $exist = Db::table("支付成功表")->where("order_no", $post_data["order_no"])->find();                # 如果已经存储过就不再存储了(因为Adapay的回调基本上会发送四次过来,为了避免重复的存储所以在这里规避一下)                if (!empty($exist) || $exist !== false || $exist != null) {                    break;                }                $aData = [                    # 官方返回数据id                    "request_id"   => $post_data["id"],                    # 时间                    "created_time" => $post_data["created_time"],                    # 订单号                    "order_no"     => $post_data["order_no"],                    # app_id                    "app_id"       => $post_data["app_id"],                    # 支付渠道                    "pay_channel"  => $post_data["pay_channel"],                    # 付款金额                    "pay_amt"      => $post_data["pay_amt"],                    # 手续费                    "fee_amt"      => $post_data["fee_amt"],                    # 状态                    "status"       => $post_data["status"],                    # openid                    "sub_open_id"  => $post_data["expend"]["sub_open_id"]                ];                Db::table("成功表")->insert($aData);                unset($aData);                break;            default:                # 回调失败                return \JSON_data(0, "回调错误", $post_data);        }                # 其他业务

总结

支付到这里就结束了,代码中有些自身数据要根据你的实际情况来修正哦!

下一篇准备分享一下使用Adapay实现商家分账的功能,看大家有没有需求

来源地址:https://blog.csdn.net/arlene12345/article/details/127665894

--结束END--

本文标题: PHP 实现汇聚adapay调用微信支付

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

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

猜你喜欢
  • PHP 实现汇聚adapay调用微信支付
    目录 前言 一、下载SDK 二、配置 三、实际操作 1.引入SDK 2.代码参考 四、回调 总结 前言 先整理一下调起微信支付的流程: Adapay成功发起支付请求 -> 将请求成功中的 pay_info 返回给前端-> 前端使用 pay...
    99+
    2023-09-04
    php thinkphp 微信
  • PHP实现微信支付流程(Native支付)
    最近项目需要做微信支付的功能,想着把流程以及遇到的坑记录下来 1.到微信商户平台中去开通Native支付(产品中心-Native支付-申请开通) 2.微信商户平台中下载证书以及设置api密钥(账户中心-api安全),查看指引中很详细的说...
    99+
    2023-08-31
    php 微信 Powered by 金山文档
  • PHP 实现微信支付 JSAPI
    目录 一、首先我们来填个坑 1:支付验签失败 二、代码示例 1.请求参数配置 2.统一下单API 3.MakeSign 签名 4.ToXml 数组参数转xml 5.postXmlCurl 发送请求 6.FromXml 结果xml参数转数组 ...
    99+
    2023-09-12
    php 微信 微信公众平台
  • php实现微信支付功能
    一、生成预支付订单并获取预支付ID(prepay_id): ...
    99+
    2023-09-11
    php
  • 【开源微信】微信支付V3接口调用与PHP开源实现
    1、概述 支付功能是软件服务的关键一环,需要用户、支付应用、服务商和支付平台共同参与完成。为此,支付平台开放基础支付API,并提供常用开发语言SDK供开发者使用;支付服务商和软件开发者基于API和SDK根据业务场景开发具体支付业务。但是,从...
    99+
    2023-09-16
    开源 微信
  • PHP 实现微信Native扫码支付
    目录 一、安装微信SDK 二、准备请求资料 三、引入和定义 四、Native下单 五、Native调起支付 六、Native异步通知 一、安装微信SDK composer require wechatpay/wech...
    99+
    2023-09-25
    开发语言 php 微信 thinkphp
  • php实现微信jsapi支付(v2版本)
    统一下单 public function unifiedOrder($product_type = 1, $openid = '', $phone = '') { ...
    99+
    2023-10-09
    php 微信 开发语言
  • PHP实现 APP端微信支付功能
    一丶 PHP后台生成预支付交易单,返回正确的预支付交易回话标识后 调起支付,根据文档拼接微信需要的参数,这里将需要的几个方法进行示例; 传输给微信的参数要组装成xml格式发送,传如参数数组! publ...
    99+
    2023-10-18
    php 微信 android
  • 快手快币h5支付实现:支付宝微信双端h5调用-易支付插件
          最近由于工作涉及到了一个小项目,需要研究到快手,斗音等段视频支付接口api,经过研究和测试终于实现了完美调用,既然实现了完美调用,索性一次性做出了成品,以彩虹易支付为框架,做出了快手快币的支付宝与威信双h5调用,自动回调,支付宝...
    99+
    2023-09-10
    php
  • PHP 微信支付V3版本SDK使用整理汇总
    最近项目中需要使用微信支付,决定使用微信官方V3 SDK版本接口 项目支持的环境如下: Guzzle 7.0,PHP >= 7.2.5Guzzle 6.5,PHP >= 7.1.2 安装 compos...
    99+
    2023-10-20
    php 微信 开发语言
  • 微信开发 ━━ 微信商户v3微信支付回调之php篇
    开发内容都在这里: 微信支付API v3 证书和回调报文解密 在微信支付时提供一个回调地址,支付完成后微信会向这个回调地址发送一个json格式的报文,将报文内容解密后获取订单号等数据 报文内容:...
    99+
    2023-09-25
    php 微信 开发语言 微信支付 支付
  • h5移动端如何调用支付宝、微信支付
    这篇文章给大家分享的是有关h5移动端如何调用支付宝、微信支付的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码:var aliChannel = null;  &...
    99+
    2023-06-09
  • PHP微信开发:如何实现JSAPI支付
    随着移动互联网的发展,微信已经成为了人们生活中不可或缺的一部分,越来越多的商家选择在微信平台上开展业务。实现微信支付功能对于商家来说是非常必要的。本文将介绍如何使用PHP实现JSAPI支付。首先,我们需要了解什么是JSAPI支付。JSAPI...
    99+
    2023-05-14
    实现 PHP微信开发 JSAPI支付
  • vue项目中的支付功能实现(微信支付和支付宝支付)
    目录项目中常见的支付方式    支付宝支付微信支付项目中常见的支付方式     支付宝支付  &nbs...
    99+
    2024-04-02
  • C# 微信支付回调验签处理的实现
    目录概述c#方法概述 在微信支付中,当用户支付成功后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答。接收微信支付异步通知回调地址也是有要求:通知url必须...
    99+
    2024-04-02
  • Android调用微信登陆、分享、支付
    用了微信sdk各种痛苦,感觉比qq sdk调用麻烦多了,回调过于麻烦,还必须要在指定包名下的actvity进行回调,所以我在这里写一篇博客,有这个需求的朋友可以借鉴一下,以后自...
    99+
    2022-06-06
    登陆 Android
  • PHP实现小程序微信支付(v3版本)
    PS:本篇文章是PHP对小程序进行微信支付v3版本的实现,仅用于对支付流程的了解,具体使用方面需要大家自行调整 小程序端JS代码: getPrepayID(){ var that = th...
    99+
    2023-09-17
    php 小程序 微信
  • PHP 实现微信支付 “请求单次分账”
    目录 一、小总结 二、服务层 一、小总结 分账 调用分账的订单必须是请求下单中以下参数等于  Y 的订单并且在下单接口中该参数也等于 Y 才能使用分账(可以参考一下PHP JSAPI调起微信支付API_一本曾经的博客-CSDN博客) "p...
    99+
    2023-09-01
    python 开发语言
  • 怎么用PHP实现支付宝和微信扫码在线支付的功能
    本篇内容介绍了“怎么用PHP实现支付宝和微信扫码在线支付的功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2024-04-02
  • iOS实现H5支付(微信、支付宝)原生封装
    前言 支付分APP支付、H5支付、扫码支付等。app支付一般在app中使用,并且需要集成相应的支付SDK,H5支付多用于网页。如果你的APP不想集成支付SDK,又想实现支付功能,你...
    99+
    2022-06-05
    iOS H5支付 微信 支付宝
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作