您当前的位置:首页 > 网站建设笔记 >

PHP商城系统网站会员充值

0
前台充值表单页面
处理提交充值金额
支付方式列表
付款记录表插入数据
收银台
选择支付方式
PC场景下单并支付
异步通知
同步通知
pay_success
选择微信支付
微信支付结果通知
pay_result.php
前台充值页面代码
处理提交充值金额
返回支付方式列表
pe_pay 付款表
名字类型整理属性默认额外注释
pay_idvarchar(25)utf8_general_ci付款单ID
pay_typevarchar(20)utf8_general_cirechargerecharge|order
order_idvarchar(50)utf8_general_ci订单表pe_order.order_id
order_outidvarchar(50)utf8_general_ci第三方支付订单号
order_namevarchar(100)utf8_general_ci
order_datatextutf8_general_ci
order_statevarchar(10)utf8_general_ciwpaywpay|success
order_paymentvarchar(20)utf8_general_cialipay_js支付方式类型
order_payment_namevarchar(20)utf8_general_ci支付方式名称
order_moneydecimal(10,2)UNSIGNED0.00
order_atimeint(10)UNSIGNED0下单时间
order_ptimeint(10)UNSIGNED0付款时间
order_pstatetinyint(1)UNSIGNED0付款状态
user_idint(10)UNSIGNED
user_namevarchar(20)utf8_general_ci
pay_idpay_typeorder_idorder_outidorder_nameorder_moneyorder_data order_stateorder_paymentorder_payment_nameorder_atimeorder_ptimeorder_pstate user_iduser_name
pay_231023151853275recharge商城用户【137****2550】账户充值1元1.00 wpaywxpay微信支付1698045533006137****2550
付款记录表插入数据
收银台
订单提交成功,请尽快付款
交易编号:pay_231019153347324
订单信息:商城用户【13717312550】账户充值1元
应付金额:1.00元
选择支付方式:
选择支付方式

支付宝手机网站支付流程手机截图

支付宝手机网站支付流程手机截图

alipay.trade.page.pay(统一收单下单并支付页面接口)

电脑网站支付

PC场景下单并支付

1 公共请求参数

参数类型是否必选最大长度描述示例值
app_idString必选32支付宝分配给开发者的应用ID2014072300007148
methodString必选128接口名称alipay.trade.page.pay
charsetString必选10请求使用的编码格式,如utf-8、gbk、gb2312等utf-8
sign_typeString必选10商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2RSA2
signString必选344商户请求参数的签名串,详见签名详见示例
timestampString必选19发送请求的时间,格式yyyy-MM-dd HH:mm:ss2014-07-24 03:07:50
versionString必选3调用的接口版本,固定为:1.01.0
biz_contentString必选请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档
formatString可选40仅支持JSONJSON
return_urlString可选256HTTP/HTTPS开头字符串支付宝同步通知详细说明
notify_urlString可选256支付宝服务器主动通知商户服务器里指定的页面http/https路径。
app_auth_tokenString可选40详见应用授权概述

2 请求参数

参数类型是否必选最大长度描述示例值
out_trade_noString必选64商户订单号。
由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复。
20150320010101001
total_amountPrice必选11订单总金额,单位为元,精确到小数点后两位,取值范围为[0.01,100000000],金额不能为0。88.88
subjectString必选256订单标题。
注意:不可使用特殊字符,如/、=、&等。
Iphone6 16G
product_codeString必选64销售产品码,与支付宝签约的产品码名称。注:目前电脑支付场景下仅支持FAST_INSTANT_TRADE_PAYFAST_INSTANT_TRADE_PAY
qr_pay_modeString可选2

PC扫码支付的方式。

支持前置模式和跳转模式。

前置模式是将二维码前置到商户的订单确认页的模式。需要商户在自己的页面中以iframe方式请求支付宝页面。具体支持的枚举值有以下几种:

0:订单码-简约前置模式,对应iframe宽度不能小于600px,高度不能小于300px;

1:订单码-前置模式,对应iframe宽度不能小于 300px,高度不能小于600px;

3:订单码-迷你前置模式,对应iframe宽度不能小于75px,高度不能小于75px;

4:订单码-可定义宽度的嵌入式二维码,商户可根据需要设定二维码的大小。

跳转模式下,用户的扫码界面是由支付宝生成的,不在商户的域名下。支持传入的枚举值有:

2:订单码-跳转模式

qrcode_widthNumber可选4

商户自定义二维码宽度。

注:qr_pay_mode=4时该参数有效

time_expireString可选32

订单绝对超时时间。

格式为yyyy-MM-dd HH:mm:ss。超时时间范围:1m~15d。

注:time_expire和timeout_express两者只需传入一个或者都不传,两者均传入时,优先使用time_expire。

PC场景下单并支付

异步通知参数

异步通知说明

对于PC网站支付的交易,在用户支付完成之后,支付宝会根据API中商家传入的notify_url,通过POST请求的形式将支付结果作为参数通知到商家系统。

1 异步通知参数

1.1 公共参数

参数类型是否必填最大长度描述示例值
notify_timeDate-通知的发送时间。格式为yyyy-MM-dd HH:mm:ss2018-10-21 15:45:22
notify_typeString64通知类型trade_status_sync
notify_idString128通知校验IDac05099524730693a8b330c45cf72da943
charsetString10编码格式。如utf-8、gbk、gb312等utf-8
versionString3调用的接口版本。固定为1.01.0
sign_typeString10签名类型。签名算法类型,目前支持RSA2和RSA,推荐使用RSA2RSA2
signString344签名。详情可查看异步返回结果的验签601510b7970e52cc63db0f44997cf70e
auth_app_idString32授权方的APPID。由于本接口暂不开放第三方应用授权,因此 auth_app_id=app_id2018072300007418

1.2 业务参数

参数类型是否必填最大长度描述示例值
trade_noString64支付宝交易号,支付宝交易凭证号。2013112011001004330000121536
app_idString32支付宝应用的APPID。支付宝分配给开发者的应用ID2019082200007148
out_trade_noString64商家订单号。原支付请求的商家订单号6823789339978248
out_biz_noString64商家业务号。商家业务ID,通常是退款通知中返回的退款申请流水号HZRF001
buyer_idString16买家支付宝账号ID。以2088开头的纯16位数字20881***524333
seller_idString30卖家支付宝账号ID。以2088开头的纯16位数字20881***2239364
trade_statusString32

交易状态。交易目前所处状态

WAIT_BUYER_PAY 交易创建,等待买家付款。

TRADE_CLOSED 未付款交易超时关闭,或支付完成后全额退款。

TRADE_SUCCESS 交易支付成功。

TRADE_FINISHED 交易结束,不可退款。

TRADE_CLOSED
total_amountNumber11订单金额。本次交易支付订单金额,单位为人民币(元),精确到小数点后2位20.00
receipt_amountNumber11实收金额。商家在交易中实际收到的款项,单位为人民币(元),精确到小数点后2位15.00
invoice_amountNumber11开票金额。用户在交易中支付的可开发票的金额,单位为人民币(元),精确到小数点后2位13.88
buyer_pay_amountNumber11用户在交易中支付的金额,单位为人民币(元),精确到小数点后2位12.00
point_amountNumber11使用集分宝支付金额,单位为人民币(元),精确到小数点后2位12.00
refund_feeNumber11总退款金额。退款通知中,返回总退款金额,单位为人民币(元),精确到小数点后2位2.58
subjectString256订单标题/商品标题/交易标题/订单关键字等,是请求时对应参数,会在通知中原样传回
bodyString400商品描述。该订单的备注、描述、明细等。对应请求时的body参数,会在通知中原样传回
gmt_createDate-交易创建时间。格式为 yyyy-MM-dd HH:mm:ss2018-08-25 15:34:42
gmt_paymentDate-交易付款时间。格式为 yyyy-MM-dd HH:mm:ss2018-08-25 15:34:42
gmt_refundDate-交易退款时间。格式为 yyyy-MM-dd HH:mm:ss.S2018-08-26 10:34:44.340
gmt_closeDate-交易结束时间。格式为 yyyy-MM-dd HH:mm:ss2018-08-26 16:32:30
fund_bill_listString512支付金额信息。支付成功的各个渠道金额信息。
vocher_detail_listString512优惠券信息。本交易支付时所使用的所有优惠券信息。详情可查看下表优惠券信息说明
passback_paramsString512回传参数,公共回传参数,如果请求时传递了该参数,则返回的异步通知会原样传回。本参数必须进行UrlEncode之后才可传入。merchantBizType%3d3C%26merchantBizNo%3d201601001111

异步通知处理代码

alipay.trade.query(统一收单交易查询)

该接口提供所有支付宝支付订单的查询,商户可以通过该接口主动查询订单状态,完成下一步的业务逻辑。需要调用查询接口的情况:

当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知;

调用支付接口后,返回系统错误或未知交易状态情况;

调用alipay.trade.pay,返回INPROCESS的状态;

调用alipay.trade.cancel之前,需确认支付状态。

1 公共请求参数

参数类型是否必选最大长度描述示例值
app_idString必选32支付宝分配给开发者的应用ID2014072300007148
methodString必选128接口名称alipay.trade.query
formatString可选40仅支持JSONJSON
charsetString必选10请求使用的编码格式,如utf-8、gbk、gb2312等utf-8
sign_typeString必选10商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2RSA2
signString必选344商户请求参数的签名串,详见签名
timestampString必选19发送请求的时间,格式yyyy-MM-dd HH:mm:ss2014-07-24 03:07:50
versionString必选3调用的接口版本,固定为:1.01.0
app_auth_tokenString可选40详见应用授权概述
biz_contentString必选请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档

2 请求参数

参数类型是否必选最大长度描述示例值
out_trade_noString特殊可选64

订单支付时传入的商户订单号,和支付宝交易号不能同时为空。

trade_no、out_trade_no如果同时存在优先取trade_no

20150320010101001
trade_noString特殊可选64支付宝交易号,和商户订单号不能同时为空
query_optionsString[]可选1024

查询选项,商户通过上送该参数来定制同步需要额外返回的信息字段,数组格式。支持枚举如下:

fund_bill_list:交易支付使用的资金渠道;

voucher_detail_list:交易支付时使用的所有优惠券信息;

discount_goods_detail:交易支付所使用的单品券优惠的商品优惠信息;

mdiscount_amount:商家优惠金额;

枚举值

交易结算信息:trade_settle_info

交易支付使用的资金渠道:fund_bill_list

交易支付时使用的所有优惠券信息:voucher_detail_list

交易支付使用单品券优惠的商品优惠信息:discount_goods_detail

商家优惠金额:mdiscount_amount

医保信息:medical_insurance_info

trade_settle_info

3 公共响应参数

参数类型是否必选最大长度描述示例值
codeString必选-网关返回码,详见文档40004
msgString必选-网关返回码描述,详见文档Business Failed
sub_codeString可选-业务返回码,参见具体的API接口文档ACQ.TRADE_HAS_SUCCESS
sub_msgString可选-业务返回码描述,参见具体的API接口文档交易已被支付
signString必选-签名,详见文档

4 响应参数

参数类型是否必选最大长度描述示例值
trade_noString必选64支付宝交易号2013112011001004330000121536
out_trade_noString必选64商家订单号6823789339978248
buyer_logon_idString必选100买家支付宝账号159****5620
trade_statusString必选32

交易状态:

WAIT_BUYER_PAY(交易创建,等待买家付款)

TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)

TRADE_SUCCESS(交易支付成功)

TRADE_FINISHED(交易结束,不可退款)

TRADE_CLOSED
total_amountPrice必选11交易的订单金额,单位为元,两位小数。该参数的值为支付时传入的total_amount88.88
buyer_pay_amountPrice可选11买家实付金额,单位为元,两位小数。该金额代表该笔交易买家实际支付的金额,不包含商户折扣等金额8.88
point_amountPrice可选11积分支付的金额,单位为元,两位小数。该金额代表该笔交易中用户使用积分支付的金额,比如集分宝或者支付宝实时优惠等10
invoice_amountPrice可选11交易中用户支付的可开具发票的金额,单位为元,两位小数。该金额代表该笔交易中可以给用户开具发票的金额12.11
send_pay_dateDate特殊可选32本次交易打款给卖家的时间2014-11-27 15:45:57
receipt_amountString特殊可选11实收金额,单位为元,两位小数。该金额为本笔交易,商户账户能够实际收到的金额15.25
store_idString特殊可选32商户门店编号NJ_S_001
terminal_idString特殊可选32商户机具终端编号NJ_T_001
fund_bill_listTradeFundBill[]必选交易支付使用的资金渠道。只有在签约中指定需要返回资金明细,或者入参的query_options中指定时才返回该字段信息。
fund_channelString必选32交易使用的资金渠道,详见支付渠道列表ALIPAYACCOUNT
amountPrice必选32该支付工具类型所使用的金额10
real_amountPrice可选11渠道实际付款金额11.21
store_nameString特殊可选512请求交易支付中的商户店铺的名称证大五道口店
buyer_user_idString必选16买家在支付宝的用户id2088101117955611
buyer_user_typeString特殊可选18

买家用户类型。

枚举值

企业用户: CORPORATE

个人用户: PRIVATE

PRIVATE
mdiscount_amountString特殊可选11商家优惠金额88.88
discount_amountString特殊可选11平台优惠金额88.88
ext_infosString特殊可选1024交易额外信息,特殊场景下与支付宝约定返回。json格式。{"action":"cancel"}

同步通知return_url.php

未付款

pay_idpay_typeorder_idorder_outidorder_nameorder_moneyorder_data order_stateorder_paymentorder_payment_nameorder_atimeorder_ptimeorder_pstate user_iduser_name
pay_231023151853275recharge商城用户【137****2550】账户充值1元1.00 wpaywxpay微信支付1698045533006137****2550

支付完成

pay_idpay_typeorder_idorder_outidorder_nameorder_moneyorder_data order_stateorder_paymentorder_payment_nameorder_atimeorder_ptimeorder_pstate user_iduser_name
pay_231023151853275recharge2023102522001443710501215677商城用户【137****2550】账户充值1元1.00 successalipay支付宝1698045533169822664916137****2550

商户自身业务处理

pe_user 会员表
名字类型整理属性默认额外注释
user_idint(10)UNSIGNEDAUTO_INCREMENT用户ID
user_namevarchar(20)utf8_general_ci用户名
user_pwchar(32)utf8_general_ci登录密码
user_paypwchar(32)utf8_general_ci支付密码
user_logovarchar(100)utf8_general_ci用户头像
user_moneydecimal(10,1)UNSIGNED0.0账户余额
user_money_costdecimal(10,1)UNSIGNED0.0总消费额
user_money_tgdecimal(10,1)UNSIGNED0.0推广总收益
user_pointint(10)UNSIGNED0帐户积分余额
user_point_allint(10)UNSIGNED0累计获得积分
user_tnamevarchar(10)utf8_general_ci用户姓名
user_phonechar(11)utf8_general_ci用户手机
user_telvarchar(20)utf8_general_ci固定电话
user_qqvarchar(10)utf8_general_ci用户QQ
user_emailvarchar(30)utf8_general_ci用户邮箱
user_atimeint(10)UNSIGNED0用户注册时间
user_ltimeint(10)UNSIGNED0用户上次登录时间
user_addressvarchar(255)utf8_general_ci用户地址
user_ordernumint(10)UNSIGNED0
user_tgnumint(10)UNSIGNED0邀请人数
user_statetinyint(1)UNSIGNED1
user_tokenchar(32)utf8_general_ci
user_ipchar(15)utf8_general_ci用户注册IP
user_wx_openidvarchar(50)utf8_general_ci
userlevel_idsmallint(5)UNSIGNED0用户等级ID
tguser_idint(10)UNSIGNED0推广用户ID
tguser_namevarchar(20)utf8_general_ci推广用户名
pe_moneylog 用户资金明细表
名字类型整理属性默认额外注释
moneylog_idint(10)UNSIGNEDAUTO_INCREMENT
moneylog_typevarchar(10)utf8_general_cirecharge、add、cashout、back
moneylog_indecimal(10,2)UNSIGNED0.00收入
moneylog_outdecimal(10,2)UNSIGNED0.00支出
moneylog_nowdecimal(10,2)UNSIGNED0.00当前结余
moneylog_atimeint(10)UNSIGNED0时间
moneylog_adatedate
moneylog_textvarchar(255)utf8_general_ci
user_idint(10)UNSIGNED0用户ID
user_namevarchar(30)utf8_general_ci用户名
微信统一下单API Native支付统一下单
商户系统处理支付结果通知逻辑PHP代码
pay_result

建站咨询

咨询热线

微信咨询

返回顶部