-

微信支付ASP版配置使用教程(图文教程)

微信支付(https://pay.weixin.qq.com)是腾讯集团旗下中国领先的第三方支付平台,一直致力于为用户和企业提供安全、便捷、专业的在线支付服务。https://pay.weixin.qq.com/static/product/product_index.shtml 支付产品列表

Native支付
Native支付是指商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站、实体店单品或订单、媒体广告支付等场景。 https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_7_0.shtml apiv3开发文档

核心代码:

'扫码支付'
Function NATIVE_Pay()
    dim postData,signValue,post_url,sign,returnXml,xml_dom,return_code,result_code,get_prepay_id,attach
    post_url= "https://api.mch.weixin.qq.com/pay/unifiedorder"
    sign="appid="&getAppId&"&attach="&attach_my&"&body="&body&"&mch_id="&getMCHID&"&nonce_str="&nonce_str&"¬ify_url="¬ify_url&"&out_trade_no="&out_trade_no&"&spbill_create_ip="&create_ip&"&total_fee="&total_fee&"&trade_type=NATIVE&key="&getPartnerKey
    signValue=UCase(MD5(sign,"UTF-8"))
    postData="<xml>"&_
        "<appid><![CDATA["&getAppId&"]]></appid>"&_
        "<attach><![CDATA["&attach_my&"]]></attach>"&_
        "<body><![CDATA["&body&"]]></body>"&_
        "<mch_id><![CDATA["&getMCHID&"]]></mch_id>"&_
        "<nonce_str><![CDATA["&nonce_str&"]]></nonce_str>"&_
        "<notify_url><![CDATA["¬ify_url&"]]></notify_url>"&_
        "<out_trade_no><![CDATA["&out_trade_no&"]]></out_trade_no>"&_
        "<spbill_create_ip><![CDATA["&create_ip&"]]></spbill_create_ip>"&_
        "<total_fee><![CDATA["&total_fee&"]]></total_fee>"&_
        "<trade_type><![CDATA[NATIVE]]></trade_type>"&_
        "<sign><![CDATA["&signValue&"]]></sign>"&_
        "</xml>"
        ' response.Write("show=" & post_url & "<hr>")
    returnXml=Get_code_url(apiurl,post_url,postData)

        ' response.Write("returnXml=" & returnXml & "<hr>")
    
    set xml_dom=Server.CreateObject("MSXML2.DOMDocument")
    xml_dom.loadXml(returnXml)
    return_code=xml_dom.getelementsbytagname("return_code").item(0).text
    if return_code="FAIL" then
        '协议级错误
        get_prepay_id=xml_dom.getelementsbytagname("return_msg").item(0).text
        response.Write("协议级接口调用错误:"&get_prepay_id)
        response.End()
    else
        result_code=xml_dom.getelementsbytagname("result_code").item(0).text
        if result_code="FAIL" then
        '业务级错误
            get_prepay_id=xml_dom.getelementsbytagname("err_code_des").item(0).text
            response.Write("业务级支付错误:"&get_prepay_id)
            response.End()
        else
            if return_code="SUCCESS" and result_code="SUCCESS" then
                '数据正常
                NATIVE_Pay=xml_dom.getelementsbytagname("code_url").item(0).text
            end if
        end if
    end if
End Function
            

JSAPI支付
JSAPI支付是指商户通过调用微信支付提供的JSAPI接口,在支付场景中调起微信支付模块完成收款。 https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter1_1_1.shtml apiv3开发文档
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1 apiv2开发文档

核心代码:

'JSAPI支付'
Function JSAPI_Pay()
    ' response.write("getAppId="& getAppId)
    dim postData,signValue,post_url,sign,returnXml,xml_dom,return_code,result_code,get_prepay_id,attach
    post_url= "https://api.mch.weixin.qq.com/pay/unifiedorder"


    sign="appid="&getAppId&"&attach="&attach_my&"&body="&body&"&mch_id="&getMCHID&"&nonce_str="&nonce_str&"¬ify_url="¬ify_url

    sign=sign&"&openid="&wxopenid
    sign=sign&"&out_trade_no="&out_trade_no&"&spbill_create_ip="&create_ip&"&total_fee="&total_fee&"&trade_type=JSAPI&key="&getPartnerKey

 


    signValue=UCase(MD5(sign,"UTF-8")) 
    postData="<xml>"&_
        "<appid><![CDATA["&getAppId&"]]></appid>"&_
        "<attach><![CDATA["&attach_my&"]]></attach>"&_
        "<body><![CDATA["&body&"]]></body>"&_
        "<mch_id><![CDATA["&getMCHID&"]]></mch_id>"&_
        "<nonce_str><![CDATA["&nonce_str&"]]></nonce_str>"&_
        "<notify_url><![CDATA["¬ify_url&"]]></notify_url>"&_
        "<openid><![CDATA["&wxopenid&"]]></openid>"&_
        "<out_trade_no><![CDATA["&out_trade_no&"]]></out_trade_no>"&_
        "<spbill_create_ip><![CDATA["&create_ip&"]]></spbill_create_ip>"&_
        "<total_fee><![CDATA["&total_fee&"]]></total_fee>"&_
        "<trade_type><![CDATA[JSAPI]]></trade_type>"&_
        "<sign><![CDATA["&signValue&"]]></sign>"&_
        "</xml>"
        ' response.Write("show=" & post_url & "<hr>")
    returnXml=Get_code_url(apiurl,post_url,postData)

        ' response.Write("returnXml=" & returnXml & "<hr>")
    
    set xml_dom=Server.CreateObject("MSXML2.DOMDocument")
    xml_dom.loadXml(returnXml)


    call xml_dom.Save(server.mappath("JSAPI_Pay.txt"))


    return_code=xml_dom.getelementsbytagname("return_code").item(0).text
    if return_code="FAIL" then
        '协议级错误
        get_prepay_id=xml_dom.getelementsbytagname("return_msg").item(0).text
        response.Write("协议级接口调用错误:"&get_prepay_id)
        response.End()
    else
        result_code=xml_dom.getelementsbytagname("result_code").item(0).text
        if result_code="FAIL" then
        '业务级错误
            get_prepay_id=xml_dom.getelementsbytagname("err_code_des").item(0).text
            response.Write("业务级支付错误:"&get_prepay_id)
            response.End()
        else
            if return_code="SUCCESS" and result_code="SUCCESS" then
                '数据正常
                JSAPI_Pay=xml_dom.getelementsbytagname("prepay_id").item(0).text
            end if
        end if
    end if
End Function 
'微信支付V3,返回最后提交的paySign
Function get_paySign()
    dim sign
    sign="appId="&getAppId&"&nonceStr="&nonce_str&"&package=prepay_id="&prepay_id&"&signType=MD5&timeStamp="&timeStamp&"&key="&getPartnerKey
    get_paySign=UCase(MD5(sign,"UTF-8"))
End Function
            

案例源码

asp版微信支付源码(扫描和微信内支付)
下载案例源码>>