第三方支付熟悉

第三方支付原理简介

  1. 第三方支付原理

首先在第三方支付平台注册一个商户账户,支付平台会为你分配一个商户id,这个商户id很重要,而且需要和第三方支付平台之间有一个商户密钥,用于发生交易时进行校验,在发生支付操作时用到。在支付发生时,从网站(或App)的支付页面跳转到第三方支付平台,跳转时会带着一系列参数,包含了一个处理支付之后的回调地址,在第三方支付平台登录并完成支付之后,再跳转回原网站,跳转到之前传到支付平台的回调地址,在跳转到回调页面时,进行判断是否支付成功,如果支付成功,执行相应的操作,反之,执行其他的操作。

  1. 搭建模拟支付环境

在这里下载模拟器,模拟器是用的ASP.NET写的(不知道谁写的,第一次见是传智播客,有可能是杨中科老师写的),下载之后,配置IIS或者使用CassiniDev小型IIS服务器将这个文件夹作为一个网站运行起来,我的示例中是配置在了IIS上,需要CassiniDev的可以在这里下载,配置好网站之后,模拟环境基本搭建完成。除此之外,为清楚的看到支付时的页面跳转,配置IIS时配置主机指向alipay.com,然后网站首页的地址就是alipay.com:8088了,如果要更改主机指向的话这样配置还不够,还需要修改hosts文件,增加alipay到127.0.0.1, hosts文件位于 c:windowssystem32driversetc 目录下

模拟器首页如下图

  1. 实现支付宝模拟支付

    支付宝支付文档说明

    网关地址(支付网关地址/接入地址) http://alipay.com:8080/AliPay/PayGate.ashx

    网关参数说明:

    partner:商户编号 1 --

    return_url:回调商户地址(通过商户网站的哪个页面来通知支付成功!)1 --

    subject:商品名称

    body:商品描述

    out_trade_no:订单号!!!(由商户网站生成,支付宝不确保正确性,只负责转发。)

    total_fee:总金额

    seller_email:卖家邮箱1--

    sign:数字签名。为按顺序连接 总金额、 商户编号、订单号、商品名称、商户密钥的MD5值。(小写值)

    支付结果返回给 return_url 指定的网址.传回的参数如下:

    回调商户接口地址参数说明:

    out_trade_no:订单号。给PayGate.ashx传过去的out_trade_no再传回来

    returncode:返回码,字符串。ok为支付成功,error为支付失败。

    total_fee:支付金额

    sign:数字签名。为按顺序连接 订单号、返回码、支付金额、商户密钥为新字符串的MD5值。

    测试商户名称:APlus

    商户编号:4

    商户密钥:aaaaaa

    (每个商户的密钥是商户自己设置的,每个人的都不一样,只有支付宝和商户知道,所以无法猜测、假冒)

    数据保存在App_Data目录下的Access数据库中,可以自行添加或修改

  2. 实现网银在线模拟支付

    网关地址http://alipay.com:8088/ChinaBank/PayGate.ashx

    网关参数说明:

    v_mid:商户编号

    v_oid:订单号

    v_amount:总金额

    v_moneytype:币种。0为人民币,1为外币。

    v_url:回调商户地址

    v_md5info:数字签名。为按顺序连接 总金额、币种、订单号、商户编号、商户密钥为新字符串的MD5值。

    style:网关模式:0(普通列表),2(银行列表中带外卡)

    remark1:备注1。可空。

    remark2:备注2。可空。

    回调商户接口地址参数说明:

    v_oid:订单号

    v_pmode:支付银行。目前值衡为0.

    v_pstatus:支付结果。20为成功,30为支付失败

    v_amount:总金额

    v_moneytype:币种。0为人民币,1为外币。

    remark1:传递的备注1。

    remark2:传递的备注1。

    v_md5str:数字签名。为按顺序连接 订单号、支付结果、总金额、币种、商户密钥为新字符串的MD5值。

    测试商户名称:APlus

    商户编号:4

    商户密钥:aaaaaa

    源码下载

原文地址:https://www.cnblogs.com/weihanli/p/ThirdPay.html